114 lines
4.6 KiB
C++
114 lines
4.6 KiB
C++
#pragma once
|
|
|
|
#include <stdint.h>
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// STK message constants
|
|
|
|
static constexpr uint8_t MESSAGE_START = 0x1B; // ASCII ESC
|
|
static constexpr uint8_t TOKEN = 0x0E;
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// STK general command constants
|
|
|
|
static constexpr uint8_t CMD_SIGN_ON = 0x01;
|
|
static constexpr uint8_t CMD_SET_PARAMETER = 0x02;
|
|
static constexpr uint8_t CMD_GET_PARAMETER = 0x03;
|
|
static constexpr uint8_t CMD_SET_DEVICE_PARAMETERS = 0x04;
|
|
static constexpr uint8_t CMD_OSCCAL = 0x05;
|
|
static constexpr uint8_t CMD_LOAD_ADDRESS = 0x06;
|
|
static constexpr uint8_t CMD_FIRMWARE_UPGRADE = 0x07;
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// STK ISP command constants
|
|
|
|
static constexpr uint8_t CMD_ENTER_PROGMODE_ISP = 0x10;
|
|
static constexpr uint8_t CMD_LEAVE_PROGMODE_ISP = 0x11;
|
|
static constexpr uint8_t CMD_CHIP_ERASE_ISP = 0x12;
|
|
static constexpr uint8_t CMD_PROGRAM_FLASH_ISP = 0x13;
|
|
static constexpr uint8_t CMD_READ_FLASH_ISP = 0x14;
|
|
static constexpr uint8_t CMD_PROGRAM_EEPROM_ISP = 0x15;
|
|
static constexpr uint8_t CMD_READ_EEPROM_ISP = 0x16;
|
|
static constexpr uint8_t CMD_PROGRAM_FUSE_ISP = 0x17;
|
|
static constexpr uint8_t CMD_READ_FUSE_ISP = 0x18;
|
|
static constexpr uint8_t CMD_PROGRAM_LOCK_ISP = 0x19;
|
|
static constexpr uint8_t CMD_READ_LOCK_ISP = 0x1A;
|
|
static constexpr uint8_t CMD_READ_SIGNATURE_ISP = 0x1B;
|
|
static constexpr uint8_t CMD_READ_OSCCAL_ISP = 0x1C;
|
|
static constexpr uint8_t CMD_SPI_MULTI = 0x1D;
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// STK PP command constants
|
|
|
|
static constexpr uint8_t CMD_ENTER_PROGMODE_PP = 0x20;
|
|
static constexpr uint8_t CMD_LEAVE_PROGMODE_PP = 0x21;
|
|
static constexpr uint8_t CMD_CHIP_ERASE_PP = 0x22;
|
|
static constexpr uint8_t CMD_PROGRAM_FLASH_PP = 0x23;
|
|
static constexpr uint8_t CMD_READ_FLASH_PP = 0x24;
|
|
static constexpr uint8_t CMD_PROGRAM_EEPROM_PP = 0x25;
|
|
static constexpr uint8_t CMD_READ_EEPROM_PP = 0x26;
|
|
static constexpr uint8_t CMD_PROGRAM_FUSE_PP = 0x27;
|
|
static constexpr uint8_t CMD_READ_FUSE_PP = 0x28;
|
|
static constexpr uint8_t CMD_PROGRAM_LOCK_PP = 0x29;
|
|
static constexpr uint8_t CMD_READ_LOCK_PP = 0x2A;
|
|
static constexpr uint8_t CMD_READ_SIGNATURE_PP = 0x2B;
|
|
static constexpr uint8_t CMD_READ_OSCCAL_PP = 0x2C;
|
|
|
|
static constexpr uint8_t CMD_SET_CONTROL_STACK = 0x2D;
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// STK HVSP command constants
|
|
|
|
static constexpr uint8_t CMD_ENTER_PROGMODE_HVSP = 0x30;
|
|
static constexpr uint8_t CMD_LEAVE_PROGMODE_HVSP = 0x31;
|
|
static constexpr uint8_t CMD_CHIP_ERASE_HVSP = 0x32;
|
|
static constexpr uint8_t CMD_PROGRAM_FLASH_HVSP = 0x33;
|
|
static constexpr uint8_t CMD_READ_FLASH_HVSP = 0x34;
|
|
static constexpr uint8_t CMD_PROGRAM_EEPROM_HVSP = 0x35;
|
|
static constexpr uint8_t CMD_READ_EEPROM_HVSP = 0x36;
|
|
static constexpr uint8_t CMD_PROGRAM_FUSE_HVSP = 0x37;
|
|
static constexpr uint8_t CMD_READ_FUSE_HVSP = 0x38;
|
|
static constexpr uint8_t CMD_PROGRAM_LOCK_HVSP = 0x39;
|
|
static constexpr uint8_t CMD_READ_LOCK_HVSP = 0x3A;
|
|
static constexpr uint8_t CMD_READ_SIGNATURE_HVSP = 0x3B;
|
|
static constexpr uint8_t CMD_READ_OSCCAL_HVSP = 0x3C;
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// STK status constants
|
|
|
|
// Success
|
|
static constexpr uint8_t STATUS_CMD_OK = 0x00;
|
|
|
|
// Warnings
|
|
static constexpr uint8_t STATUS_CMD_TOUT = 0x80;
|
|
static constexpr uint8_t STATUS_RDY_BSY_TOUT = 0x81;
|
|
static constexpr uint8_t STATUS_SET_PARAM_MISSING = 0x82;
|
|
|
|
// Errors
|
|
static constexpr uint8_t STATUS_CMD_FAILED = 0xC0;
|
|
static constexpr uint8_t STATUS_CKSUM_ERROR = 0xC1;
|
|
static constexpr uint8_t STATUS_CMD_UNKNOWN = 0xC9;
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// STK parameter constants
|
|
static constexpr uint8_t PARAM_BUILD_NUMBER_LOW = 0x80;
|
|
static constexpr uint8_t PARAM_BUILD_NUMBER_HIGH = 0x81;
|
|
static constexpr uint8_t PARAM_HW_VER = 0x90;
|
|
static constexpr uint8_t PARAM_SW_MAJOR = 0x91;
|
|
static constexpr uint8_t PARAM_SW_MINOR = 0x92;
|
|
static constexpr uint8_t PARAM_VTARGET = 0x94;
|
|
static constexpr uint8_t PARAM_VADJUST = 0x95;
|
|
static constexpr uint8_t PARAM_OSC_PSCALE = 0x96;
|
|
static constexpr uint8_t PARAM_OSC_CMATCH = 0x97;
|
|
static constexpr uint8_t PARAM_SCK_DURATION = 0x98;
|
|
static constexpr uint8_t PARAM_TOPCARD_DETECT = 0x9A;
|
|
static constexpr uint8_t PARAM_STATUS = 0x9C;
|
|
static constexpr uint8_t PARAM_DATA = 0x9D;
|
|
static constexpr uint8_t PARAM_RESET_POLARITY = 0x9E;
|
|
static constexpr uint8_t PARAM_CONTROLLER_INIT = 0x9F;
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// STK answer constants
|
|
|
|
static constexpr uint8_t ANSWER_CKSUM_ERROR = 0xB0;
|