From 2059fd8b1a4c79f37811bb27fa568a97c56936a4 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Wed, 27 Jan 2010 02:59:54 +0000 Subject: [PATCH] Manually pull PDI clock pin high for 1ms before disabling PDI mode in the AVRISP-MKII project, to ensure that the PDI bus is disabled in the target and /RESET functionality restored. --- LUFA/ManPages/FutureChanges.txt | 1 - Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c | 8 ++++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/LUFA/ManPages/FutureChanges.txt b/LUFA/ManPages/FutureChanges.txt index 9006040d3d..d2ba13f7e0 100644 --- a/LUFA/ManPages/FutureChanges.txt +++ b/LUFA/ManPages/FutureChanges.txt @@ -17,7 +17,6 @@ * -# Add ability to get number of bytes not written with pipe/endpoint write routines after an error * -# Add standardized descriptor names to class driver structures * -# Correct mishandling of error cases in Mass Storage demos - * -# FIX BROKEN RNDIS HOST CLASS DRIVER (BLOCKING) * -# TEST AND CORRECT TPI PROGRAMMING SUPPORT IN THE AVRISP-MKII PROJECT (BLOCKING) * - Documentation/Support * -# Remake AVRStudio project files diff --git a/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c b/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c index 01c861fb6d..05d5ec9a42 100644 --- a/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c +++ b/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c @@ -230,6 +230,10 @@ void XPROGTarget_DisableTargetPDI(void) XPROGTarget_SetRxMode(); #if defined(XPROG_VIA_HARDWARE_USART) + /* Set /RESET high for a one millisecond to ensure target device is restarted */ + PORTD |= (1 << 5); + _delay_ms(1); + /* Turn off receiver and transmitter of the USART, clear settings */ UCSR1A |= (1 << TXC1) | (1 << RXC1); UCSR1B = 0; @@ -239,6 +243,10 @@ void XPROGTarget_DisableTargetPDI(void) DDRD &= ~((1 << 5) | (1 << 3)); PORTD &= ~((1 << 5) | (1 << 3) | (1 << 2)); #else + /* Set /RESET high for a one millisecond to ensure target device is restarted */ + BITBANG_PDICLOCK_PORT |= BITBANG_PDICLOCK_MASK; + _delay_ms(1); + /* Set DATA and CLOCK lines to inputs */ BITBANG_PDIDATA_DDR &= ~BITBANG_PDIDATA_MASK; BITBANG_PDICLOCK_DDR &= ~BITBANG_PDICLOCK_MASK;