Electronic – What microprocessor for experimentation

armmicrocontroller

I harbor a secret fantasy (oops, not so secret anymore) to build a simple computer from scratch. I'm looking for an easy-to-use microprocessor to start with. I know about the usual suspects such as the 6502, 68000, 8086, Z80, etc. But I'm wondering if something better is out there. Here's my wish list:

Must have:

  • Low clock rate (4-25 MHz)
  • No more than 40-60 pins, preferably in DIP configuration
  • Ability to address around 64KB of memory, but up to 1MB or so would be good
  • Stored-program architecture (not read-only instruction space) (Edit: this rules out most low-end microcontrollers, like the PIC and AVR)
  • Flat memory model, not banked or segmented like the 8086

Would like, but not necessary to have:

  • RISCy instruction set (load-store)
  • General-purpose registers
  • Assortment of TTL I/O pins
  • Built-in flash ROM

What microprocessor or microcontroller would you suggest that's relatively easy to wire up and get the first ROM routines written for?

My goal is to get a simple Forth (or similar) system going. Just to say I did it.

Edit: After doing a bit of research, I think something like the ARM7 would suit me. It comes with a non-trivial amount of flash and SRAM to play with — sometimes as much as 256K flash and 64K SRAM — along with digital I/O, ADC, serial I/O, and more.

Here's one: the STR711 ARM development board.

Best Answer

I agree that ARM is the way to go for 32-bit microcontrollers. ARM is ubiquitous and its assembly language can be used across a broad range of microcontroller families. ARM also has good support from the GCC toolchain. The ARM7TDMI chip architecture has dominated the 32-bit mcu space the last 5 years and the ARM Cortex-M3 is the emerging replacement. The Cortex-M3 does have a Harvard architecture (separate instruction and data address spaces), but I don't feel that's a limitation.

Micromint has a solid reputation, and they offer a Cortex-M3 board with configurable options for a decent price. However, if you really need DIP configuration, I've had success with the mbed

Now, the next thing is languages. You mentioned FORTH. I also recommend Python-on-a-Chip and eLua as powerful, easy to learn languages that work on this size target platform. eLua is more fully developed but has larger resource requirements than Python-on-a-Chip. Full disclosure: I'm the author of the PyMite VM used in Python-on-a-Chip. So, if your goal is to make your own language, I fully understand the joy of that exercise.

Related Topic