diff options
author | Dean Camera <dean@fourwalledcubicle.com> | 2009-12-09 12:01:01 +0000 |
---|---|---|
committer | Dean Camera <dean@fourwalledcubicle.com> | 2009-12-09 12:01:01 +0000 |
commit | 9c8ed168e5805059db7978e6a9a4ad24347c7a6e (patch) | |
tree | 335ca20c5911c30724585c42f78e7ade01379646 /Projects/AVRISP/Lib/PDITarget.h | |
parent | e4cfd5208fdb51942ad8857dd5e1d96f5216f73b (diff) | |
download | lufa-9c8ed168e5805059db7978e6a9a4ad24347c7a6e.tar.gz lufa-9c8ed168e5805059db7978e6a9a4ad24347c7a6e.tar.bz2 lufa-9c8ed168e5805059db7978e6a9a4ad24347c7a6e.zip |
Fix inverted bit-banged USART logic in the AVRISP project for PDI programming. Add a delay to the clock toggling in the AVRISP project to ensure that the programming speed does not exceed 10MHz under any conditions to satisfy the limits in the datasheet for all target voltages. Fix incorrect pin being used as the DATA in in PDI programming mode.
Diffstat (limited to 'Projects/AVRISP/Lib/PDITarget.h')
-rw-r--r-- | Projects/AVRISP/Lib/PDITarget.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Projects/AVRISP/Lib/PDITarget.h b/Projects/AVRISP/Lib/PDITarget.h index 294d1a98b..00ce68bb3 100644 --- a/Projects/AVRISP/Lib/PDITarget.h +++ b/Projects/AVRISP/Lib/PDITarget.h @@ -65,7 +65,7 @@ #define PDIDATA_LINE_PORT PORTB
#define PDIDATA_LINE_DDR DDRB
#define PDIDATA_LINE_PIN PINB
- #define PDIDATA_LINE_MASK (1 << 2)
+ #define PDIDATA_LINE_MASK (1 << 3)
#define PDICLOCK_LINE_PORT RESET_LINE_PORT
#define PDICLOCK_LINE_DDR RESET_LINE_DDR
@@ -91,7 +91,9 @@ #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
+ asm volatile ("NOP" ::); \
+ PDICLOCK_LINE_PORT ^= PDICLOCK_LINE_MASK; \
+ asm volatile ("NOP" ::); }MACROE
/* Function Prototypes: */
void PDITarget_SendByte(uint8_t Byte);
|