The Arduino controller boards are easily the most popular ‘go to’ for quick and dirty microcontroller based projects. The Arduino Uno, with the Atmel-Microchip ATMega328P processor is the most popular, costing less than $23 US for the original version, and under $10 for clones and ‘mini’ bread board friendly versions.
For projects, you’ll probably want to just build the raw processor chip into your design, but you’ll still need the Arduino setup to download your code to the chip. This means providing the USB to Serial interface, and programming the bootstrap onto the chip. You’ll also have to provide the required oscillator crystal and resonating capacitors.
Depending on what I’m doing, I’ll either lash up a simple breadboard to develop my projects code, or skip that step and solder up a perfboard with the minimal circuit. An example of the former is shown below:
The Atmega328P controller chip in a QFTP-32 package is shown soldered to a DIP adapter board. These adapter PCB’s are available from overseas suppliers on Ebay cheaply, if you buy them in bulk you can get several for a dollar. These boards come in several flavors as shown below:
The ‘Quad’ styles are four sided and have single or double rows of pins. The single row style can be used with breadboards by populating two parallel rows with bread board pins, and Arduino style sockets connectors on the other two rows. For the ATmega328 only one such socket connector will be required as the other row only has two I/O connectors on it. The other pins go to VCC, GND, and the crystal. Wire fly leads can be soldered to the needed connectors and plugged into the breadboard.
The other ‘quad’ style board while not suitable for breadboard use, will more easily fit into your completed project. This particular board is made to hold either a 32 pin style IC (ATmega328) or a 44 pin style chip (ATmega324, Atmega644, or Atmega1284). These larger ATmegas are 3 to 6 times more expensive than the Atmega328, but if your project is memory or I/O space challenged on the smaller processor, they are a welcome option.
The dual inline style board has solder pads on the bottom for chip resistors or capacitors for bypass or pull downs. I used them to bypass the VCC leads to ground, and to mount the crystal resonating capacitors.
Atmel-Microchip recently introduced the ATmega328PB version of the ‘328. This chip is only available in the QFTP and QFN style packages (both can be soldered to the adapter boards shown, but the QFN packages are a bit harder to solder, they will require the use of solder paste and a hot air soldering tool). These parts have a few more I/O pins, and extra serial ports.
If you are using ‘bare’ AVR chips in this fashion, rather than the Arduino Uno, there are special Arduino board profiles available here. The Minicore profile supports all of the 28/32 pin processors including the new ATmega328PB. The MightyCore profile adds support for the 40/44 pin AVR chips, and the MegaCore profile adds support for all of the 64/100 pin variants. There are a few other profiles available for some other less used AVR controllers. The MegaCoreX for the Xmega parts looks interesting.
The link to the various ‘core’ profiles includes sample wiring diagrams. There are several speed options available including the usual 16mhz, as well as 8mhz, 7.3728mhz, 14.7456mhz, 18.432mhz, 20mhz, and a few others. The ‘oddball’ frequencies are special ones than divide down exactly to standard baud rates. Crystals for these frequencies are quite common. The frequencies above 16mhz are overclock rates for some of the older AVR processors (but still might work).
You’ll need some kind of programmer to flash the bootstrap onto your chip, which will require you to wire up the standard Atmel 6 pin ISP connector (see the sample wiring diagram provided with the core profiles). For any of the AVR chips with 64K flash or less I recommend Adafruit’s USBtiny for $22. If you want to use the larger AVR procssors with 128K or more flash, or any of the XMegas, you’ll have to buy a programmer from Atmel-Microchip, or a suitable clone. Another option is to use the Arduino Uno with a suitable sketch as a programmer (example on the Arduino website ). However if you really need that much flash space, maybe you should be considering one of the ARM based Arduinos, but that’s another story.