//**** ATMEL AVR - A P P L I C A T I O N   N O T E  ************************
//*
//* Title:              AVR061 - STK500 Communication Protocol
//* Filename:           command.h
//* Version:            1.0
//* Last updated:       09.09.2002
//*
//* Support E-mail:     avr@atmel.com
//*
//**************************************************************************

// *****************[ STK Message constants ]***************************

#define STK_SIGN_ON_MESSAGE "AVR STK"   // Sign on string for Cmnd_STK_GET_SIGN_ON

// *****************[ STK Response constants ]***************************

#define Resp_STK_OK                0x10 // ' '
#define Resp_STK_FAILED            0x11 // ' '
#define Resp_STK_UNKNOWN           0x12 // ' '
#define Resp_STK_NODEVICE          0x13 // ' '
#define Resp_STK_INSYNC            0x14 // ' '
#define Resp_STK_NOSYNC            0x15 // ' '

#define Resp_ADC_CHANNEL_ERROR     0x16 // ' '
#define Resp_ADC_MEASURE_OK        0x17 // ' '
#define Resp_PWM_CHANNEL_ERROR     0x18 // ' '
#define Resp_PWM_ADJUST_OK         0x19 // ' '

// *****************[ STK Special constants ]***************************

#define Sync_CRC_EOP               0x20 // 'SPACE'

// *****************[ STK Command constants ]***************************

#define Cmnd_STK_GET_SYNC          0x30 // ' '
#define Cmnd_STK_GET_SIGN_ON       0x31 // ' '

#define Cmnd_STK_SET_PARAMETER     0x40 // ' '
#define Cmnd_STK_GET_PARAMETER     0x41 // ' '
#define Cmnd_STK_SET_DEVICE        0x42 // ' '
#define Cmnd_STK_SET_DEVICE_EXT    0x45 // ' '

#define Cmnd_STK_ENTER_PROGMODE    0x50 // ' '
#define Cmnd_STK_LEAVE_PROGMODE    0x51 // ' '
#define Cmnd_STK_CHIP_ERASE        0x52 // ' '
#define Cmnd_STK_CHECK_AUTOINC     0x53 // ' '
#define Cmnd_STK_LOAD_ADDRESS      0x55 // ' '
#define Cmnd_STK_UNIVERSAL         0x56 // ' '
#define Cmnd_STK_UNIVERSAL_MULTI   0x57 // ' '

#define Cmnd_STK_PROG_FLASH        0x60 // ' '
#define Cmnd_STK_PROG_DATA         0x61 // ' '
#define Cmnd_STK_PROG_FUSE         0x62 // ' '
#define Cmnd_STK_PROG_LOCK         0x63 // ' '
#define Cmnd_STK_PROG_PAGE         0x64 // ' '
#define Cmnd_STK_PROG_FUSE_EXT     0x65 // ' '

#define Cmnd_STK_READ_FLASH        0x70 // ' '
#define Cmnd_STK_READ_DATA         0x71 // ' '
#define Cmnd_STK_READ_FUSE         0x72 // ' '
#define Cmnd_STK_READ_LOCK         0x73 // ' '
#define Cmnd_STK_READ_PAGE         0x74 // ' '
#define Cmnd_STK_READ_SIGN         0x75 // ' '
#define Cmnd_STK_READ_OSCCAL       0x76 // ' '
#define Cmnd_STK_READ_FUSE_EXT     0x77 // ' '
#define Cmnd_STK_READ_OSCCAL_EXT   0x78 // ' '

// *****************[ STK Parameter constants ]***************************

#define Parm_STK_HW_VER            0x80 // ' ' - R
#define Parm_STK_SW_MAJOR          0x81 // ' ' - R
#define Parm_STK_SW_MINOR          0x82 // ' ' - R
#define Parm_STK_LEDS              0x83 // ' ' - R/W
#define Parm_STK_VTARGET           0x84 // ' ' - R/W
#define Parm_STK_VADJUST           0x85 // ' ' - R/W
#define Parm_STK_OSC_PSCALE        0x86 // ' ' - R/W
#define Parm_STK_OSC_CMATCH        0x87 // ' ' - R/W
#define Parm_STK_RESET_DURATION    0x88 // ' ' - R/W
#define Parm_STK_SCK_DURATION      0x89 // ' ' - R/W

#define Parm_STK_BUFSIZEL          0x90 // ' ' - R/W, Range {0..255}
#define Parm_STK_BUFSIZEH          0x91 // ' ' - R/W, Range {0..255}
#define Parm_STK_DEVICE            0x92 // ' ' - R/W, Range {0..255}
#define Parm_STK_PROGMODE          0x93 // ' ' - 'P' or 'S'
#define Parm_STK_PARAMODE          0x94 // ' ' - TRUE or FALSE
#define Parm_STK_POLLING           0x95 // ' ' - TRUE or FALSE
#define Parm_STK_SELFTIMED         0x96 // ' ' - TRUE or FALSE
#define Param_STK500_TOPCARD_DETECT 0x98        // ' ' - Detect top-card attached

// *****************[ STK status bit definitions ]***************************

#define Stat_STK_INSYNC            0x01 // INSYNC status bit, '1' - INSYNC
#define Stat_STK_PROGMODE          0x02 // Programming mode,  '1' - PROGMODE
#define Stat_STK_STANDALONE        0x04 // Standalone mode,   '1' - SM mode
#define Stat_STK_RESET             0x08 // RESET button,      '1' - Pushed
#define Stat_STK_PROGRAM           0x10 // Program button, '   1' - Pushed
#define Stat_STK_LEDG              0x20 // Green LED status,  '1' - Lit
#define Stat_STK_LEDR              0x40 // Red LED status,    '1' - Lit
#define Stat_STK_LEDBLINK          0x80 // LED blink ON/OFF,  '1' - Blink

// *****************************[ End Of COMMAND.H ]**************************
