There are many AVR programmers to choose from. The simplest ones are bitbang programmers. These are straightforward programmers that can be built with as few components as few resistors (or no resistors at all). These can be COM, LPT, or USB-to-TTL converter based.
DIY Bitband programmers
Example of LPT port programmer
These are probably the simplest to build, as there is no need to convert any signals 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 MAX232 chips used to do so. The 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, 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.
There are a plethora of other new programmer adapters, and kits that can be used to program and debug various AVR microcontrollers. AVR microcontroller programmer adapters where few of them were also introduced after Microchip acquired Atmel:
- Atmel-ICE Basic Kit: The Atmel-ICE Basic Kit is an affordable and simplified version of the original Atmel-ICE programmer adapter. It is designed to provide essential programming and debugging functionality for AVR and ARM microcontrollers and is compatible with a variety of development environments. The Atmel-ICE Basic Kit features a high-speed USB interface and supports multiple programming and debugging interfaces, including JTAG, SWD, and PDI.
- Atmel-ICE Pro Kit: The Atmel-ICE Pro Kit is a high-end programmer adapter that is designed for professional developers. It offers advanced features such as real-time trace and power profiling and support for a wide range of microcontrollers and development environments. The Atmel-ICE Pro Kit is a versatile and powerful tool that is well-suited for complex and demanding projects.
- Microchip MPLAB PICkit 4 In-Circuit Debugger/Programmer: The MPLAB PICkit 4 is a versatile and affordable programmer adapter that is compatible with both AVR and PIC microcontrollers. It supports multiple programming and debugging interfaces, including JTAG, SWD, and PDI, and is designed to work with various development environments. The MPLAB PICkit 4 is a popular option for hobbyists and students due to its low cost and ease of use.
- Microchip Atmel SAM-ICE JTAG/SWD Emulator: The Atmel SAM-ICE is a high-end programmer adapter that is designed for professional developers. It supports programming and debugging for both AVR and ARM microcontrollers, and includes advanced features such as real-time trace and power profiling. The Atmel SAM-ICE is a powerful and versatile tool that is well-suited for complex and demanding projects.
- Microchip ATmega4809 Xplained Pro Evaluation Kit: The ATmega4809 Xplained Pro is a development board with a built-in programmer adapter. It is designed to provide an easy and convenient way to evaluate and develop applications for AVR microcontrollers and includes several onboard sensors and peripherals. The ATmega4809 Xplained Pro is a good option for hobbyists and students who are just starting with AVR microcontroller development.
These are just a few examples of newer AVR microcontroller programmer adapters that are available. As always, the choice of a programmer adapter will depend on the specific needs and requirements of the project, as well as factors such as budget, compatibility with development environments, and ease of use.
This is the last option but valuable enough to program AVR. Bootloading is so-called self-programming when a small resident program runs 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.
- ISP (In-System Programming). 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.
- PDI (Program and Debug Interface) is a newer interface similar to ISP, but with additional debugging capabilities, and typically uses a 2×3-pin connector.
- UPDI (Unified Program and Debug Interface) is an interface that combines both programming and debugging functions into a single interface, and typically uses a 1×3-pin connector.
- High-voltage serial and parallel headers are used for programming legacy AVR microcontrollers that do not support ISP, PDI, or UPDI interfaces.
- aWire (AVR Wireless Interface) is a proprietary interface developed by Atmel/Microchip that uses a single-wire interface to program AVR microcontrollers.
- debugWIRE is a proprietary interface for low-cost debugging of AVR microcontrollers, using a single wire for bi-directional communication.
- JTAG (Joint Test Action Group) is a standard interface for boundary-scan testing of digital circuits, which can also be used for debugging AVR microcontrollers. JTAG typically uses a 10-pin connector.
You forgot this one: