mirror of
https://github.com/mariusgreuel/avrdude.git
synced 2025-12-14 09:52:19 +00:00
added TPI support for USBasp (patch #7440)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@961 81a1dc3b-b13d-400b-aceb-764788c761c2
This commit is contained in:
57
usbasp.h
57
usbasp.h
@@ -45,6 +45,16 @@
|
||||
#define USBASP_FUNC_WRITEEEPROM 8
|
||||
#define USBASP_FUNC_SETLONGADDRESS 9
|
||||
#define USBASP_FUNC_SETISPSCK 10
|
||||
#define USBASP_FUNC_TPI_CONNECT 11
|
||||
#define USBASP_FUNC_TPI_DISCONNECT 12
|
||||
#define USBASP_FUNC_TPI_RAWREAD 13
|
||||
#define USBASP_FUNC_TPI_RAWWRITE 14
|
||||
#define USBASP_FUNC_TPI_READBLOCK 15
|
||||
#define USBASP_FUNC_TPI_WRITEBLOCK 16
|
||||
#define USBASP_FUNC_GETCAPABILITIES 127
|
||||
|
||||
/* USBASP capabilities */
|
||||
#define USBASP_CAP_TPI 0x01
|
||||
|
||||
/* Block mode flags */
|
||||
#define USBASP_BLOCKFLAG_FIRST 1
|
||||
@@ -69,6 +79,53 @@
|
||||
#define USBASP_ISP_SCK_750 11 /* 750 kHz */
|
||||
#define USBASP_ISP_SCK_1500 12 /* 1.5 MHz */
|
||||
|
||||
/* TPI instructions */
|
||||
#define TPI_OP_SLD 0x20
|
||||
#define TPI_OP_SLD_INC 0x24
|
||||
#define TPI_OP_SST 0x60
|
||||
#define TPI_OP_SST_INC 0x64
|
||||
#define TPI_OP_SSTPR(a) (0x68 | (a))
|
||||
#define TPI_OP_SIN(a) (0x10 | (((a)<<1)&0x60) | ((a)&0x0F) )
|
||||
#define TPI_OP_SOUT(a) (0x90 | (((a)<<1)&0x60) | ((a)&0x0F) )
|
||||
#define TPI_OP_SLDCS(a) (0x80 | ((a)&0x0F) )
|
||||
#define TPI_OP_SSTCS(a) (0xC0 | ((a)&0x0F) )
|
||||
#define TPI_OP_SKEY 0xE0
|
||||
|
||||
/* TPI control/status registers */
|
||||
#define TPIIR 0xF
|
||||
#define TPIPCR 0x2
|
||||
#define TPISR 0x0
|
||||
|
||||
// TPIPCR bits
|
||||
#define TPIPCR_GT_2 0x04
|
||||
#define TPIPCR_GT_1 0x02
|
||||
#define TPIPCR_GT_0 0x01
|
||||
#define TPIPCR_GT_128b 0x00
|
||||
#define TPIPCR_GT_64b 0x01
|
||||
#define TPIPCR_GT_32b 0x02
|
||||
#define TPIPCR_GT_16b 0x03
|
||||
#define TPIPCR_GT_8b 0x04
|
||||
#define TPIPCR_GT_4b 0x05
|
||||
#define TPIPCR_GT_2b 0x06
|
||||
#define TPIPCR_GT_0b 0x07
|
||||
|
||||
// TPISR bits
|
||||
#define TPISR_NVMEN 0x02
|
||||
|
||||
/* NVM registers */
|
||||
#define NVMCSR 0x32
|
||||
#define NVMCMD 0x33
|
||||
|
||||
// NVMCSR bits
|
||||
#define NVMCSR_BSY 0x80
|
||||
|
||||
// NVMCMD values
|
||||
#define NVMCMD_NOP 0x00
|
||||
#define NVMCMD_CHIP_ERASE 0x10
|
||||
#define NVMCMD_SECTION_ERASE 0x14
|
||||
#define NVMCMD_WORD_WRITE 0x1D
|
||||
|
||||
|
||||
typedef struct sckoptions_t {
|
||||
int id;
|
||||
double frequency;
|
||||
|
||||
Reference in New Issue
Block a user