X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/f1baf12fae61a13e6d8e88655d709d74977322b5..66201a05e9d5793880b27519affff7132f6630ea:/Projects/AVRISP/Lib/PDITarget.h diff --git a/Projects/AVRISP/Lib/PDITarget.h b/Projects/AVRISP/Lib/PDITarget.h index f2281fe11..272655594 100644 --- a/Projects/AVRISP/Lib/PDITarget.h +++ b/Projects/AVRISP/Lib/PDITarget.h @@ -38,37 +38,36 @@ /* Includes: */ #include + #include #include #include /* Preprocessor Checks: */ - #if BOARD == BOARD_XPLAIN - #undef ENABLE_SPI_PROTOCOL - #define ENABLE_PDI_PROTOCOL + #if (BOARD == BOARD_XPLAIN) || (BOARD == BOARD_XPLAIN_REV1) + #undef ENABLE_ISP_PROTOCOL + + #if !defined(ENABLE_PDI_PROTOCOL) + #define ENABLE_PDI_PROTOCOL + #endif #endif /* Defines: */ #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) + #define PDI_VIA_HARDWARE_USART #else - #define PDIDATA_LINE_PORT PORTB - #define PDIDATA_LINE_DDR DDRB - #define PDIDATA_LINE_PIN PINB - #define PDIDATA_LINE_MASK (1 << 2) + #define BITBANG_PDIDATA_PORT PORTB + #define BITBANG_PDIDATA_DDR DDRB + #define BITBANG_PDIDATA_PIN PINB + #define BITBANG_PDIDATA_MASK (1 << 3) - #define PDICLOCK_LINE_PORT RESET_LINE_PORT - #define PDICLOCK_LINE_DDR RESET_LINE_DDR - #define PDICLOCK_LINE_MASK RESET_LINE_MASK + #define BITBANG_PDICLOCK_PORT RESET_LINE_PORT + #define BITBANG_PDICLOCK_DDR RESET_LINE_DDR + #define BITBANG_PDICLOCK_MASK RESET_LINE_MASK #endif + #define BITS_IN_FRAME 12 + #define PDI_CMD_LDS 0x00 #define PDI_CMD_LD 0x20 #define PDI_CMD_STS 0x40 @@ -86,12 +85,12 @@ #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_EnableTargetPDI(void); + void PDITarget_DisableTargetPDI(void); void PDITarget_SendByte(uint8_t Byte); uint8_t PDITarget_ReceiveByte(void); + void PDITarget_SendBreak(void); #endif