X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/f69f03cb0d02937dee018264f0ac4e9be76fc1f4..a925407588726cf6c0587e932b56b3b6257529e0:/Projects/AVRISP/Lib/PDITarget.h diff --git a/Projects/AVRISP/Lib/PDITarget.h b/Projects/AVRISP/Lib/PDITarget.h index cc8c7dbc5..294d1a98b 100644 --- a/Projects/AVRISP/Lib/PDITarget.h +++ b/Projects/AVRISP/Lib/PDITarget.h @@ -39,17 +39,39 @@ /* Includes: */ #include #include + + #include + /* Preprocessor Checks: */ + #if (BOARD == BOARD_XPLAIN) || (BOARD == BOARD_XPLAIN_REV1) + #undef ENABLE_ISP_PROTOCOL + + #if !defined(ENABLE_PDI_PROTOCOL) + #define ENABLE_PDI_PROTOCOL + #endif + #endif + /* Defines: */ - #define PDIDATA_LINE_PORT PORTB - #define PDIDATA_LINE_DDR DDRB - #define PDIDATA_LINE_PIN PINB - #define PDIDATA_LINE_MASK (1 << 2) + #if BOARD == BOARD_XPLAIN + #define PDIDATA_LINE_PORT PORTD + #define PDIDATA_LINE_DDR DDRD + #define PDIDATA_LINE_PIN PIND + #define PDIDATA_LINE_MASK (1 << 2) + + #define PDICLOCK_LINE_PORT PORTD + #define PDICLOCK_LINE_DDR DDRD + #define PDICLOCK_LINE_MASK (1 << 5) + #else + #define PDIDATA_LINE_PORT PORTB + #define PDIDATA_LINE_DDR DDRB + #define PDIDATA_LINE_PIN PINB + #define PDIDATA_LINE_MASK (1 << 2) + + #define PDICLOCK_LINE_PORT RESET_LINE_PORT + #define PDICLOCK_LINE_DDR RESET_LINE_DDR + #define PDICLOCK_LINE_MASK RESET_LINE_MASK + #endif - #define PDICLOCK_LINE_PORT RESET_LINE_PORT - #define PDICLOCK_LINE_DDR RESET_LINE_DDR - #define PDICLOCK_LINE_MASK RESET_LINE_MASK - #define PDI_CMD_LDS 0x00 #define PDI_CMD_LD 0x20 #define PDI_CMD_STS 0x40 @@ -64,8 +86,12 @@ #define PD_CTRL_REG 2 #define PDI_STATUS_NVM (1 << 1) + #define PDI_RESET_KEY 0x59 + #define PDI_NVMENABLE_KEY (uint8_t[]){0x12, 0x89, 0xAB, 0x45, 0xCD, 0xD8, 0x88, 0xFF} + #define TOGGLE_PDI_CLOCK MACROS{ PDICLOCK_LINE_PORT ^= PDICLOCK_LINE_MASK; \ + PDICLOCK_LINE_PORT ^= PDICLOCK_LINE_MASK; }MACROE /* Function Prototypes: */ void PDITarget_SendByte(uint8_t Byte);