Choosing right programmer for AVR microcontrollers

Once you start building something with microcontrollers, one thing you need to take into account is a programming adapter. This is a device that allows uploading compiled code into the chip. I don’t know if this is still fun to build your DIY programming adapter, which is not guaranteed to support all chips, nor will it be safe and reliable. AVR microcontroller niche is one of the most interesting when talking about programmers. If you look at the AVRDUDE configuration file, you will find that there are about 50 of them. Many of them are DIY, while others are official.

When I started with microcontrollers, I also was looking for a cheap and easy to build programming adapter. So I have built several if a few years.

RS232_AVR_ISP

The first of them was RS232 based programmer that worked with then-popular PonyProg software. Later followed LPT port programmer:

LPT_AVR_ISP

They both worked well either with PonyProg or AVRDude. But then COM and LPT ports became obsolete, so the next logical move was a USB interface. Probably the most popular USB based DIY programmer was USBASP – initially developed by Thomas Fischl. Again it works with AVRDude software. But the problem was with clumsy updates and driver stability. For some people, it works; for some, they claim it won’t. I have built mine, and it worked pretty well.

USBASP_Device

Probably the last DIY programmer I have built is the STK500V2 programmer from tuxgraphics.com.

diy_stk500v2_programmer

It was working great until AVRStudio was upgraded from V4 to V5 and then V6. This meant no firmware updates, and it didn’t work at all as AVRStudio requires an original adapter. It still works fine with AVRDude.

The original adapter you should stick with

It was a great experience with DIY programmers, but they never worked as I wanted. You have always look for updates, search for the proper user interface. And they never worked well with AVRStudio or didn’t work at all. The energy you spend by looking or building an adapter could be used elsewhere. Why not have a proper tool that always works and is still up to date.

avrisp_mkii

I highly recommend purchasing the AVRIPS MkII programmer for basic AVR programming needs, who is an official programmer developed by ATMEL. It works out of the box with the latest AVRStudio, where you can do all tasks related to reading and writing Flash/EEPROM, setting fuses/lock bits, selecting programming speed, calibrating oscillator in a nice graphical interface. Speaking of the AVR ISP MKII adapter, it is worth mentioning that it supports all AVR programming interfaces like ISP, PDI, and TPI. AVRISP MKII also supports and detects all target voltage range from 1.6V to 5.5V. It is fully USB2.0 compliant with up to 8MHz SCK programming frequency.

The most important thing with the original adapter is the feeling that things always work. The programmer isn’t that expensive now that you should look for a cheap and doubtful substitute. If you would like to program on other platforms like MacOS or Linux, it works here without problem using AVRDude programming software.

AVRISPMKII is a programmer, and it does only this. If you need to get more advanced – like debugging your projects’ programs, you should look for other tools like JTAGICE mkII or AVR ONE on the ATMEL product list.

Leave a Reply