135 lines
5.4 KiB
C
135 lines
5.4 KiB
C
|
//**** ATMEL AVR - A P P L I C A T I O N N O T E ************************
|
||
|
//*
|
||
|
//* Title: AVR068 - STK500 Communication Protocol
|
||
|
//* Filename: command.h
|
||
|
//* Version: 1.0
|
||
|
//* Last updated: 10.01.2005
|
||
|
//*
|
||
|
//* Support E-mail: avr@atmel.com
|
||
|
//*
|
||
|
//**************************************************************************
|
||
|
|
||
|
// *****************[ STK message constants ]***************************
|
||
|
|
||
|
#define MESSAGE_START 0x1B //= ESC = 27 decimal
|
||
|
#define TOKEN 0x0E
|
||
|
|
||
|
// *****************[ STK general command constants ]**************************
|
||
|
|
||
|
#define CMD_SIGN_ON 0x01
|
||
|
#define CMD_SET_PARAMETER 0x02
|
||
|
#define CMD_GET_PARAMETER 0x03
|
||
|
#define CMD_SET_DEVICE_PARAMETERS 0x04
|
||
|
#define CMD_OSCCAL 0x05
|
||
|
#define CMD_LOAD_ADDRESS 0x06
|
||
|
#define CMD_FIRMWARE_UPGRADE 0x07
|
||
|
|
||
|
|
||
|
// *****************[ STK ISP command constants ]******************************
|
||
|
|
||
|
#define CMD_ENTER_PROGMODE_ISP 0x10
|
||
|
#define CMD_LEAVE_PROGMODE_ISP 0x11
|
||
|
#define CMD_CHIP_ERASE_ISP 0x12
|
||
|
#define CMD_PROGRAM_FLASH_ISP 0x13
|
||
|
#define CMD_READ_FLASH_ISP 0x14
|
||
|
#define CMD_PROGRAM_EEPROM_ISP 0x15
|
||
|
#define CMD_READ_EEPROM_ISP 0x16
|
||
|
#define CMD_PROGRAM_FUSE_ISP 0x17
|
||
|
#define CMD_READ_FUSE_ISP 0x18
|
||
|
#define CMD_PROGRAM_LOCK_ISP 0x19
|
||
|
#define CMD_READ_LOCK_ISP 0x1A
|
||
|
#define CMD_READ_SIGNATURE_ISP 0x1B
|
||
|
#define CMD_READ_OSCCAL_ISP 0x1C
|
||
|
#define CMD_SPI_MULTI 0x1D
|
||
|
|
||
|
// *****************[ STK PP command constants ]*******************************
|
||
|
|
||
|
#define CMD_ENTER_PROGMODE_PP 0x20
|
||
|
#define CMD_LEAVE_PROGMODE_PP 0x21
|
||
|
#define CMD_CHIP_ERASE_PP 0x22
|
||
|
#define CMD_PROGRAM_FLASH_PP 0x23
|
||
|
#define CMD_READ_FLASH_PP 0x24
|
||
|
#define CMD_PROGRAM_EEPROM_PP 0x25
|
||
|
#define CMD_READ_EEPROM_PP 0x26
|
||
|
#define CMD_PROGRAM_FUSE_PP 0x27
|
||
|
#define CMD_READ_FUSE_PP 0x28
|
||
|
#define CMD_PROGRAM_LOCK_PP 0x29
|
||
|
#define CMD_READ_LOCK_PP 0x2A
|
||
|
#define CMD_READ_SIGNATURE_PP 0x2B
|
||
|
#define CMD_READ_OSCCAL_PP 0x2C
|
||
|
|
||
|
#define CMD_SET_CONTROL_STACK 0x2D
|
||
|
|
||
|
// *****************[ STK HVSP command constants ]*****************************
|
||
|
|
||
|
#define CMD_ENTER_PROGMODE_HVSP 0x30
|
||
|
#define CMD_LEAVE_PROGMODE_HVSP 0x31
|
||
|
#define CMD_CHIP_ERASE_HVSP 0x32
|
||
|
#define CMD_PROGRAM_FLASH_HVSP 0x33
|
||
|
#define CMD_READ_FLASH_HVSP 0x34
|
||
|
#define CMD_PROGRAM_EEPROM_HVSP 0x35
|
||
|
#define CMD_READ_EEPROM_HVSP 0x36
|
||
|
#define CMD_PROGRAM_FUSE_HVSP 0x37
|
||
|
#define CMD_READ_FUSE_HVSP 0x38
|
||
|
#define CMD_PROGRAM_LOCK_HVSP 0x39
|
||
|
#define CMD_READ_LOCK_HVSP 0x3A
|
||
|
#define CMD_READ_SIGNATURE_HVSP 0x3B
|
||
|
#define CMD_READ_OSCCAL_HVSP 0x3C
|
||
|
|
||
|
// *****************[ STK test command constants ]***************************
|
||
|
|
||
|
#define CMD_ENTER_TESTMODE 0x60
|
||
|
#define CMD_LEAVE_TESTMODE 0x61
|
||
|
#define CMD_CHIP_WRITE 0x62
|
||
|
#define CMD_PROGRAM_FLASH_PARTIAL 0x63
|
||
|
#define CMD_PROGRAM_EEPROM_PARTIAL 0x64
|
||
|
#define CMD_PROGRAM_SIGNATURE_ROW 0x65
|
||
|
#define CMD_READ_FLASH_MARGIN 0x66
|
||
|
#define CMD_READ_EEPROM_MARGIN 0x67
|
||
|
#define CMD_READ_SIGNATURE_ROW_MARGIN 0x68
|
||
|
#define CMD_PROGRAM_TEST_FUSE 0x69
|
||
|
#define CMD_READ_TEST_FUSE 0x6A
|
||
|
#define CMD_PROGRAM_HIDDEN_FUSE_LOW 0x6B
|
||
|
#define CMD_READ_HIDDEN_FUSE_LOW 0x6C
|
||
|
#define CMD_PROGRAM_HIDDEN_FUSE_HIGH 0x6D
|
||
|
#define CMD_READ_HIDDEN_FUSE_HIGH 0x6E
|
||
|
#define CMD_PROGRAM_HIDDEN_FUSE_EXT 0x6F
|
||
|
#define CMD_READ_HIDDEN_FUSE_EXT 0x70
|
||
|
|
||
|
// *****************[ STK status constants ]***************************
|
||
|
|
||
|
// Success
|
||
|
#define STATUS_CMD_OK 0x00
|
||
|
|
||
|
// Warnings
|
||
|
#define STATUS_CMD_TOUT 0x80
|
||
|
#define STATUS_RDY_BSY_TOUT 0x81
|
||
|
#define STATUS_SET_PARAM_MISSING 0x82
|
||
|
|
||
|
// Errors
|
||
|
#define STATUS_CMD_FAILED 0xC0
|
||
|
#define STATUS_CKSUM_ERROR 0xC1
|
||
|
#define STATUS_CMD_UNKNOWN 0xC9
|
||
|
|
||
|
// *****************[ STK parameter constants ]***************************
|
||
|
#define PARAM_BUILD_NUMBER_LOW 0x80
|
||
|
#define PARAM_BUILD_NUMBER_HIGH 0x81
|
||
|
#define PARAM_HW_VER 0x90
|
||
|
#define PARAM_SW_MAJOR 0x91
|
||
|
#define PARAM_SW_MINOR 0x92
|
||
|
#define PARAM_VTARGET 0x94
|
||
|
#define PARAM_VADJUST 0x95
|
||
|
#define PARAM_OSC_PSCALE 0x96
|
||
|
#define PARAM_OSC_CMATCH 0x97
|
||
|
#define PARAM_SCK_DURATION 0x98
|
||
|
#define PARAM_TOPCARD_DETECT 0x9A
|
||
|
#define PARAM_STATUS 0x9C
|
||
|
#define PARAM_DATA 0x9D
|
||
|
#define PARAM_RESET_POLARITY 0x9E
|
||
|
#define PARAM_CONTROLLER_INIT 0x9F
|
||
|
|
||
|
// *****************[ STK answer constants ]***************************
|
||
|
|
||
|
#define ANSWER_CKSUM_ERROR 0xB0
|
||
|
|