The AVR ISP protocol is based upon the communication protocol used by all Atmel AVR tools as far back as the STK500. It is used for programming tinyAVR and megaAVR devices using the SPI interface

Timing parameter values are extracted from XML files and included in the protocol command function calls.

Note

This protocol is also described in the Application Note AVR069: AVRISP mkII Communication Protocol, although not all commands are supported. The SPI_MULTI command is not supported by this implementation.

The protocol commands are put in the payload of EDBG commands with the handler set to SPI. The responses are also sent as the payload of EDBG commands.

Note that the SPI protocol has no CMD_ACTIVATE_PHYSICAL. The ENTER_PROGMODE command will enable the physical and LEAVE_PROGMODE will deactivate it.

The SPI_MULTI command is not supported by this implementation.

In addition to the SPI commands the general CMD_LOAD_ADDRESS from the STK500 communication protocol is supported. This command is used to set the start address for the following write or read command. This command is described below.