As we talked earlier, there are many AVR programmers to choose from. 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
Example of LPT port programmer
These are probably simplest to build as there is no need to convert any signals coming from the 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 complicated as it has to convert 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 vanish from computers especially Laptops. SO if build one better go with USB. There are several DIY USB programmers available too. Most of them work the 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 looks for STK500 based AVRUSB500V2. It works perfectly in AVRStudio 4:
There is another great USB programmer that works only with AVRDUDE software is USBasp. The main advantage of it is that it emulates USB purely in software – so no additional USB to serial chip is required:
If you search the internet – you’ll find more programmer clones. There is no significant difference most crucial thing is that it will deliver a program to chip.
Professional AVR ISP programmers
If you don’t want to mess up with DIY stuff, then open your wallet and get a professionally made programmer with support and protection circuitry. With these, you will always be sure it works. They aren’t so expensive, so buy one. These can be AVRISP or AVRISPv2.
Or you can go with STK500 that is still actively used as a programmer and development board. It has various headers to fit different AVR chips. The only downside is that it has only a serial interface. To work with USB, you’ll need USB to serial converter.
As the more advanced designer, you can choose AVRDragon that is USB based. IT works as universal AVR programmer and emulator/debugger. If the price doesn’t bite go for it.
This is the last option but useful enough to program AVR. Bootloading is so-called self-programming when there is a small resident program running inside the 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 sometime later. Let’s stick with a programmer for now.
When you 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 AVR boards. These are 6 pin and 10 pin headers. You can use any of those.
I prefer 6 pins as it takes less space on board. 10 pin header has the same functions in a different layout where 4 pins are wasted – connected to ground or not connected at all. To use programmer in the breadboard, you may need AVR programming adapter which aligns pins to a single line. Or you can do some wiring to reach the same result.