2012-05-19 18:27:27 +04:00
|
|
|
/*
|
|
|
|
* usbasp.c - part of USBasp
|
|
|
|
*
|
|
|
|
* Autor..........: Thomas Fischl <tfischl@gmx.de>
|
|
|
|
* Description....: Definitions and macros for usbasp
|
|
|
|
* Licence........: GNU GPL v2 (see Readme.txt)
|
|
|
|
* Creation Date..: 2009-02-28
|
|
|
|
* Last change....: 2009-02-28
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef USBASP_H_
|
|
|
|
#define USBASP_H_
|
|
|
|
|
|
|
|
/* USB function call identifiers */
|
|
|
|
#define USBASP_FUNC_CONNECT 1
|
|
|
|
#define USBASP_FUNC_DISCONNECT 2
|
|
|
|
#define USBASP_FUNC_TRANSMIT 3
|
|
|
|
#define USBASP_FUNC_READFLASH 4
|
|
|
|
#define USBASP_FUNC_ENABLEPROG 5
|
|
|
|
#define USBASP_FUNC_WRITEFLASH 6
|
|
|
|
#define USBASP_FUNC_READEEPROM 7
|
|
|
|
#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
|
|
|
|
|
2012-05-20 13:10:25 +04:00
|
|
|
#define USBASP_FUNC_SPI_RECVSTART 32
|
|
|
|
#define USBASP_FUNC_SPI_RECV 33
|
|
|
|
#define USBASP_FUNC_SPI_RECVSTOP 34
|
|
|
|
|
2012-05-19 18:27:27 +04:00
|
|
|
/* USBASP capabilities */
|
|
|
|
#define USBASP_CAP_0_TPI 0x01
|
|
|
|
|
|
|
|
/* programming state */
|
|
|
|
#define PROG_STATE_IDLE 0
|
|
|
|
#define PROG_STATE_WRITEFLASH 1
|
|
|
|
#define PROG_STATE_READFLASH 2
|
|
|
|
#define PROG_STATE_READEEPROM 3
|
|
|
|
#define PROG_STATE_WRITEEEPROM 4
|
|
|
|
#define PROG_STATE_TPI_READ 5
|
|
|
|
#define PROG_STATE_TPI_WRITE 6
|
2012-05-20 13:10:25 +04:00
|
|
|
#define PROG_STATE_SERIAL 7
|
2012-05-19 18:27:27 +04:00
|
|
|
|
|
|
|
/* Block mode flags */
|
|
|
|
#define PROG_BLOCKFLAG_FIRST 1
|
|
|
|
#define PROG_BLOCKFLAG_LAST 2
|
|
|
|
|
|
|
|
/* ISP SCK speed identifiers */
|
|
|
|
#define USBASP_ISP_SCK_AUTO 0
|
|
|
|
#define USBASP_ISP_SCK_0_5 1 /* 500 Hz */
|
|
|
|
#define USBASP_ISP_SCK_1 2 /* 1 kHz */
|
|
|
|
#define USBASP_ISP_SCK_2 3 /* 2 kHz */
|
|
|
|
#define USBASP_ISP_SCK_4 4 /* 4 kHz */
|
|
|
|
#define USBASP_ISP_SCK_8 5 /* 8 kHz */
|
|
|
|
#define USBASP_ISP_SCK_16 6 /* 16 kHz */
|
|
|
|
#define USBASP_ISP_SCK_32 7 /* 32 kHz */
|
|
|
|
#define USBASP_ISP_SCK_93_75 8 /* 93.75 kHz */
|
|
|
|
#define USBASP_ISP_SCK_187_5 9 /* 187.5 kHz */
|
|
|
|
#define USBASP_ISP_SCK_375 10 /* 375 kHz */
|
|
|
|
#define USBASP_ISP_SCK_750 11 /* 750 kHz */
|
|
|
|
#define USBASP_ISP_SCK_1500 12 /* 1.5 MHz */
|
|
|
|
|
|
|
|
/* macros for gpio functions */
|
|
|
|
#define ledRedOn() PORTC &= ~(1 << PC1)
|
|
|
|
#define ledRedOff() PORTC |= (1 << PC1)
|
|
|
|
#define ledGreenOn() PORTC &= ~(1 << PC0)
|
|
|
|
#define ledGreenOff() PORTC |= (1 << PC0)
|
|
|
|
|
2012-05-20 13:10:25 +04:00
|
|
|
#define isLedRedOff() (PORTC & (1 << PC1))
|
|
|
|
#define isLedRedOn() ~(isLedRedOff())
|
|
|
|
#define isLedGreenOff() (PORTC & (1 << PC0))
|
|
|
|
#define isLedGreenOn() ~(isLedGreenOff())
|
|
|
|
|
|
|
|
#define toggleLedRed() PORTC ^= (1 << PC1)
|
|
|
|
#define toggleLedGreen() PORTC ^= (1 << PC0)
|
|
|
|
|
|
|
|
|
2012-05-19 18:27:27 +04:00
|
|
|
#endif /* USBASP_H_ */
|