+2  A: 

Check out Atmel's ATmega microcontrollers, they have all you ask for except the ability of executing code from RAM, and they are very easy to set up.

Some small 32 bit ARM processor such as ARM7TDMI would be an alternative, but these don't come in DIP packages. The same applies to Renesas R8C/M16C microcontrollers.

starblue
+1http://www.arduino.cc/playground/Learning/AtmegaStandalone
kenny
All of the AVRs use a read-only instruction space, don't they? I need to be able to execute out of RAM, so my programs can write programs.
Barry Brown
Yes, looks like you are right. Though when I played with Forth 25 years ago, I used a threaded code implementation, which would be possible with AVR.
starblue
A: 

+1 For the ATmega micros. You get them with a boot loader for programming via USB - making it even easier to get that first board running without needing to get a dedicated programmer. You will miss out on the ICE stuff if you go this route though.

Belrog
+5  A: 

Is it time for a Stackoverflow site for electronics and microcontrollers?

Posipiet
we can only hope...
Marty
I think that would be a great idea. You might want to bring it up on meta-SO.
Bill the Lizard
There's chiphacker.com now, which is an SO-like site. Might even be running the same engine.
Barry Brown
+1  A: 

You could get an FPGA and mock up the whole thing on that -- no processor required.

I've been tempted to try and make a simple MIPS computer before. I've got a basic CPU design, but it would be difficult to say the least to wire-wrap or otherwise prototype out.

McPherrinM
That's an interesting idea. Are there sources for reference processor designs that can be programmed into an FPGA?
Barry Brown
Most FPGA devkits come with either a free or licensed CPU design. Sometimes even with an accompanying RTOS.
Martin Beckett
+5  A: 

For small uC stuff Arduino, cheap, fun, good community

For ARM class machines the cheapest is probably sheeva plug they make an amazing complete machine built into a wallwart power supply and a slightly large single board machine with a lot more i/o

Or there is beagle board, aimed more at audio/video performance.

All of them run linux so you have a huge range of development software

Martin Beckett
Totally. Get the Fuzebox kit, put it together and hack little games (they're all free software so far, I think) for your TV.
mattl
Very cool......
Robert Harvey
A: 

A second vote for the Amtel. I particularly like the teensy++ for prototypes and experimentation. The USB supplies power, provides a programming interface, and displays debug output. GNU dev tools. Tons of fun for about $30.

A: 

Atmel is going to be quite popular, the arduinos (I like the pro models at sparkfun) themselves are popular. You will find MANY hobbyists out there that are familiar with and can answer most any question about using the AVR.

I prefer the msp430 instruction set to the avr, and the arm instruction set above the others. Olimex makes a number of "header" boards that are perfect for experiments. Luminary micro has some good ones but many of the pins are consumed by on chip show off the chip peripherals, good for learning the chip and features but you eventually want to cut them away to get at I/O. Anyway olimex is good, try http://www.sparkfun.com and browse through the development boards, some are from olimex some are from sparkfun, a wide selection and many under $40 or $50 so you can try a few to see what you like. I am about to order an armmite, which if it lives up to its feature list is probably the best controller board for my purposes.

dwelch
+8  A: 

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.

dwhall
ARM has separate instruction and data _buses_, the _address space_ is unified (i.e. you can read instructions and execute data if you need).I would also recommend looking at the lower-end Cortex-Mx chips from NXP - check out LPCXpresso.
Igor Skochinsky
A: 

Check out OLIMEX they have development boards for most modern micro controllers and if you really want DIP they have ARM processors on boards in DIP like format (1) . They also sell JTAGs and have some demo code available for most of the boards (gcc) so they are very easy to get up and running with. Most of their boards is available via Sparkfun. I personally like the Phillips LPC ARM based micros but anything from Olimex is good.

The AVR32 will also work for you (non havard). I have just recently started using them and was very surprised at how capable and easy to use they are.

To build from scratch is not really a option today unless you use an 8 bit dip micro or have a setup to solder surface mount boards and debug complex digital pc boards.

Gerhard
A: 

I've had the same dream, just never actually got around to it.

Most of the recommendations above are for dev boards. Since you said "from scratch" I'd assume you want to start with a single DIP processor chip and not buy a dev board. In which case I would very extremely super recommend you stick with something like the usual suspects you listed in your post. They are popular because they work well for such a task. You can overcome the need for more I/O lines with multiplexers and demultiplexers.

Suppose you did find that "perfect" CPU that does everything you want, and has the exact number of IO lines you want. You are not going to find anywhere near a smidgen of the support you'll find for the popular processors. You should very easily be able to find old used books on E-Bay, Amazon, etc. for just pennies that show how to design a complete system using those processors. Not to mention websites, compilers, and other people doing the same thing.

If you go with anything else, I think you're going to regret it deeply. You'll spend more time frustrated over lack of support than you would overcoming any technical issues you have with those processors. Plus, since people have already designed entire computers with those chips, you know it can be done. With anything else, there's always a chance you'll hit a brick wall.

Greg Miller
Additionally, you might want to consider the option of copying an existing architecture like the C64 which has already been hacked to death.
Greg Miller
+1  A: 

Depending on your goals, you may want to consider building your own CPU with the features you want, instead of using an existing CPU. Check out the Homebuilt CPU webring. There's even a lunaticenthusiast who built a CPU from relays!

Dour High Arch
WOW! That's creepy! And he looks proud of it....
asp316
+1  A: 

Sounds like a great project! I did one back in the 70's with an 8008 chip, and a little bit of RAM and ROM. I programmed it to play a little tune with speakers connected to the I/O port. Part of the memory circuit involved a timer chip controlled by a capacitor. I soldered on an extra capacitor that, when pushed into contact, made the whole thing slow down by 1000. Then I used in in class as a demonstrator. First I would run it slow and the students could hear the speakers going click, click. Then I unhooked the capacitor, and they heard the tune. I was trying to impress on them how computers finish one instruction before starting the next.

Mike Dunlavey
+1  A: 

MSP430 from Texas Instruments has very low power consumption, small but very sane instruction set (unlike PIC), open-source tools and DIP format in their value line. They have just recently released a $4.30 (yes, that's four bucks thirty cents, free shipping) starter kit that includes USB interface for programming and debugging and two DIP chips to play with. Check it out.

Igor Skochinsky
That's pretty cool! I've bookmarked that site. :)
Barry Brown