From 2b74b517ea48507a0ab3fee5628a363ab0dcd3fb Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Tue, 16 Mar 2010 12:09:22 +0000 Subject: [PATCH] Don't enable the pullup on the target /RESET line in the AVRISP project for PDI mode - clearing the XMEGA's reset control register twice is enough to release it from reset. Possible silicon bug, since the official Atmel programmers have the same issue. --- LUFA/ManPages/ChangeLog.txt | 2 +- Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt index e7f1f43837..d2c8525484 100644 --- a/LUFA/ManPages/ChangeLog.txt +++ b/LUFA/ManPages/ChangeLog.txt @@ -27,7 +27,7 @@ * - Fixed ADC routines failing to read the extended channels (Channels 8 to 13, Internal Temperature Sensor) on the * U4 series USB AVR parts * - Fixed PDI programming mode in the AVRISP programmer project not exiting programming mode correctly (clear target - * Reset key twice, set /RESET pin to pullup) + * Reset key twice, possible silicon bug?) * * \section Sec_ChangeLog100219 Version 100219 * diff --git a/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c b/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c index 4ecf033356..3a74e1531e 100644 --- a/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c +++ b/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c @@ -237,19 +237,18 @@ void XPROGTarget_DisableTargetPDI(void) UCSR1B = 0; UCSR1C = 0; - /* Make Reset input with pullup to take target out of /RESET, tristate all other pins */ + /* Tristate all pins */ DDRD &= ~((1 << 5) | (1 << 3)); PORTD &= ~((1 << 3) | (1 << 2)); - PORTD |= (1 << 5); #else /* Turn off software USART management timer */ TCCR1B = 0; - /* Make Reset input with pullup to take target out of /RESET, tristate all other pins */ + /* Tristate all pins */ BITBANG_PDIDATA_DDR &= ~BITBANG_PDIDATA_MASK; BITBANG_PDICLOCK_DDR &= ~BITBANG_PDICLOCK_MASK; BITBANG_PDICLOCK_PORT &= ~BITBANG_PDICLOCK_MASK; - BITBANG_PDIDATA_PORT |= BITBANG_PDIDATA_MASK; + BITBANG_PDIDATA_PORT &= ~BITBANG_PDIDATA_MASK; #endif }