5.1. Connecting an AVR for programming
The Pololu USB AVR Programmer v2 (bottom) connected to an A-Star 32U4 Prime SV for programming.
This section explains how to connect the programmer to an AVR microcontroller using its in-system programming (ISP) interface, which is also known as in-circuit serial programming (ICSP), serial programming, or serial downloading.
Many AVR boards feature a 6-pin male ISP connector. If your board has a connector like that, you can simply connect the programmer to the ISP header using the included 6-pin ISP cable. If your board does not have a shrouded ISP connector to ensure proper orientation of the cable, then you should make sure the cable is oriented so that pin 1 on the cable’s connector lines up with pin 1 on your target device. The ISP cable’s connector has a faint triangle on it that points to pin 1, and the red wire in the cable also indicates pin 1.
If your AVR does not have a 6-pin ISP connector, then you will need to connect each of the six programming pins from the programmer to the corresponding pin on the AVR. The programmer’s ISP pins are labeled on the bottom of the programmer and also in the diagram below. The names we use for the pins on the AVR programmer match the names typically used for the ISP pins in AVR datasheets. For example, the ATmega328P datasheet indicates that MOSI is one of the names of pin PB3, so you would need to connect the MOSI pin on the AVR programmer to the PB3/MOSI pin on the ATmega328P. By referring to your specific AVR’s datasheet and the schematic of the circuit board the AVR is on (if applicable), you should be able to identify connection points for the AVR’s GND, MISO, MOSI, SCK, RST, and VCC pins. You will generally need six wires to make all the required connections.
Pololu USB AVR Programmer v2.1, labeled top view.
You will also need to make sure that the target device is powered on. The AVR microcontroller must be powered during programming, and the programmer does not supply power by default. If you do want to supply power to the target AVR from the programmer, see Section 8.