In-System Programming uses the AVR internal SPI (Serial Peripheral Interface) to download code into the flash and EEPROM memory of the AVR. ISP programming requires only VCC , GND, RESET and 3 signal lines for programming. No high voltage signals are required. The ISP programmer can program both the internal flash and EEPROM, fuses, lockbits and calibration bytes.
Note that the ISP frequency (SCK) must be less than 1/4 of the target clock. The ISP frequency is set by the STK600 programming dialog in AVR Studio.
Note that if ISP programming will NOT work if one or more of the following cases are true:
SPIEN, SPI Enable fuse is un-programming
RSTDISBL, Reset Disable fuse is programmed (for devices with this fuse)
DWEN, DebugWIRE Enable fuse is programmed (for devices with this fuse)
Refer to the AVR datasheet for information about the fuses.
Use High-Voltage programming to re-enable the ISP interface from the situation listed above. Either HVPP or HVSP depending on what is supported by the AVR.
Mount the routing and socket card and the target device. See the Socket System section on how to do this.
Connect a 6-wire cable between the two 6-pins ISP headers on the STK600. See picture below.
Ensure that the VTARGET jumper is mounted, and that the voltage is the within the operating range for the target device.
See the Programming Dialog pages in the AVR Studio help file for information on the STK600 programming dialog.
The pinout of the 6 and 10-pins ISP header is shown below:
It is not necessary to remove the ISP cable while running a program in the AVR. The port pins used for ISP programming can be used for other purposes in your program.
See also: In-System Programming of an External Target System