It used to be that if you wanted to get involved in micro-controllers, you only had a couple of options: 8051 or PIC. The 8051 is a old, tried-and-true architecture, which is fine if you’re building a microwave or the controller for a car’s fuel injection system. The PIC is an easy to use device, but it’s slow and runs BASIC. What options are left for the basement mad-scientist intent on creating an army of robots to do his bidding? Enter Atmel.
Atmel makes the AVR series of chips. They’re small (as few as 8 pins), low cost (they start around $0.75), and they’re fast (execution speeds as fast as 16MIPS). The AVR architecture executes most instructions in 1 clock-cycle, and supports most modern languages. What makes AVRs great is the dizzying array of on-chip peripherals they support, their awesome developer friendliness, and the great user community that has grown up around them.
To get started with AVRs, you need a developer’s kit. There are 70+ different boards available from various vendors, ranging from base-bones starter boards to boards that have onboard LCDs, ethernet jacks, or FPGAs. The best board (in my mind, at least) for general experimentation is the STK500, distributed by Atmel. You can pick one up for $79 from DigiKey, but remember to get a 12V power adapter as well, as one isn’t included. Atmel makes a free assembler and IDE, and you can get a copy of gcc for the AVR from the good folks at ww.avrfreaks.net. The board has a serial port, LEDs, and pushbuttons, as well as headers for all of the ports your AVR may have. The STK500 will program any device in the DIP form factor, and with the optional STK501 daughter-board, it will program surface-mount TQFP’s as well. Of course, since all AVRs are in-circuit programmable, you don’t need anything except 4 wires to program them.