In-System Programming of Atmel tinyAVR and Atmel megaAVR devices cane be done using the Atmel AVR internal SPI (Serial Peripheral Interface) to download code into the flash and EEPROM memory. 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 Atmel STK600 programming dialog in Atmel 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-programmed

  • 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.