AVR microcontrollers are all In System Programmable (ISP) so it doesn’t make sense to use a socket programmer for them – AVR ISP is the way to go. But what features should you look for when you are choosing an AVR programmer?
First, all AVR programmers have either a 3×2 or a 5×2 0.1″ (2.54mm) pitch header connection, so if possible arrange a convenient header on your circuit, with a keyway for orientation. This will pay dividends if you need to update your firmware later and you won’t have to mess about with custom connectors.
Next, make sure your ISP circuit conforms to the accepted rules – see our AVR ISP Circuit Guide Too much resistance or capacitance on the programming lines weaken the signals which makes it much harder for the programmer to connect.
Now think about what you need the AVR programmer for. If it is just to program an AVR microcontroller as part of your development or training then a programmer that runs from Atmel’s AVRStudio development environment is ideal. You can alter the code and click Program link to update your firmware. A typical programmer for this purpose is AVRISP-MKII.
Older AVR microcontroller types use ISP to program in system (AVR ISP) or, on larger AVR microcontrollers, JTAG was available. Newer AVR microcontrollers use new programming methods like TPI, PDI and UPDI. If you intend to use these latest AVR microcontrollers, then make sure your programmer will support them.
However, if you want to start even small scale production it is a pain to have to run AVRStudio just to program some chips and even worse if you have to explain to someone else how to do it. In this case, an AVR programmer with its own front end (GUI) is far better. The GUI on a standalone AVR programmer is much easier to load and usually includes extra features such as projects (to save fuse settings and other options) and serial number or log files. A typical example is AVR ISP Programmer, low cost and easy to use.
The next step up, if you want an AVR programmer to do serious production is a production unit, such as a Production AVR Programmer. These have extra features like JTAG option (JTAG is the alternative method of programming AVR microcontrollers with 40-pins or more) and DLL and command line software that make it possible to create your own front end to suit your requirements. They are also more robust.
Finally, both for production or for field updates, portable AVR programmers are a useful choice. Handheld units are loaded once from the PC and are then standalone units. The operator just plugs in the ISP and presses the button, job done – see Handheld AVR Programmer