Choosing AVR programmer

As we talked earlier there are many AVR programmers to choose. The simplest ones are bitbang programmers. These are straight forward programmers that can be built with as little components as few resistors (or no resistors at all). These can be COM, LPT or USB-to-TTL converter based.

DIY Bitbang programmers

These are probably simplest to build as there is no need to convert any signals coming from port. Buffer chip is used only for safety reasons to protect computer port. Even simpler programmer cable can be found here.

COM (RS232) programmer is a bit more complex as it has to covert RS232 signals to TTL. Usually there are MAX232chips used to do so. Simplest COM programmer I could find is even without MAX232 chip:

LPT and RS232 programmers are bit obsolete as COM and LPT ports vanishes from computers especially Laptops. SO if build one better go with USB. There are several DIY USB programmers available too. Most of them work same way – computer emulates them as virtual COM devices. Which one to choose is also your decision to make. If you don’t want to mess with different software but AVRStudio then look for STK500 based AVRUSB500V2. It works perfectly in AVRStudio 4:

There is another great USB programmer that works only with AVRDUDE software is USBasp. Main advantage of it is that it emulates USB purely in software – so no additional USB to serial chip is required:

If you search internet – you’ll definitely find more programmer clones. There is no big difference most important thing is that it will deliver program to chip, isn’t it?

Professional AVR ISP programmers

If you don’t want mess up with DIY stuff then open your wallet and get professionally made programmer with support and protection circuitry. With these you will always be sure it works. Truly speaking they aren’t so expensive so go for them. These can be AVRISP or AVRISPv2.

Or you can go with STK500 that is still actively used as programmer and development board. It has various headers to fit various AVR chips. The only downside is that it has only serial interface. To work with USB you’ll need USB to serial converter.

As more advanced designer you can choose AVRDragon that is USB based. IT works as universal AVR programmer and emulator/debugger. If price doesn’t bite definitely go for it.

AVR Bottloaders

This is the last option but effective enough to program AVR. Bootloading is so called self programming when there is small resident program running inside chip and accepts transfer via any desired interface. You can hook USB, Serial cable or even plug Flash memory card like SD and download firmware without a programmer. No matter how cool bootloaders are you will need a programmer to put bootloader first. Bootloaders are limited as they won’t let you program fuse bits. We will get back to bootloaders some time later. Let’s stick with a programmer for now.

Programmer headers

When you will search the Internet you will find tons of programmer variants. Most of them are OK but be sure they have proper programming headers. There are two types of headers that are common on most of AVR boards. These are 6 pin and 10 pin headers. You can use any of those.

I prefer 6 pin as it takes less space on board. 10 pin header has same functions in different layout where 4 pins are wasted – connected to ground or not connected at all. To use programmer in breadboard you may need AVR programming adapter which align pins to single line. Or you can do some wiring to reach same result.