diff options
author | Dean Camera <dean@fourwalledcubicle.com> | 2011-11-29 13:33:28 +0000 |
---|---|---|
committer | Dean Camera <dean@fourwalledcubicle.com> | 2011-11-29 13:33:28 +0000 |
commit | 798cc84ff57cf4fee07a7267d76f4e551df15d12 (patch) | |
tree | 9a6d4bb22d03d5e0b4aa2428718692cfc0096fc4 | |
parent | 259a3c98540b85bf06fb80bdf5b3df311a19e352 (diff) | |
download | lufa-798cc84ff57cf4fee07a7267d76f4e551df15d12.tar.gz lufa-798cc84ff57cf4fee07a7267d76f4e551df15d12.tar.bz2 lufa-798cc84ff57cf4fee07a7267d76f4e551df15d12.zip |
Fixed AVRISP-MKII Clone failing to start application firmware once a TPI programming session is exited.
-rw-r--r-- | LUFA/DoxygenPages/ChangeLog.txt | 1 | ||||
-rw-r--r-- | Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.c | 12 |
2 files changed, 10 insertions, 3 deletions
diff --git a/LUFA/DoxygenPages/ChangeLog.txt b/LUFA/DoxygenPages/ChangeLog.txt index 6e37c6eea..28c4dc558 100644 --- a/LUFA/DoxygenPages/ChangeLog.txt +++ b/LUFA/DoxygenPages/ChangeLog.txt @@ -39,6 +39,7 @@ * - Library Applications: * - Added reliability patches to the AVRISP-MKII Clone project's PDI/TPI protocols (thanks to Justin Mattair) * - Fixed AVRISP-MKII Clone compile warning on AVR8 U4 targets even when NO_VTARGET_DETECT is enabled + * - Fixed AVRISP-MKII Clone failing to start application firmware once a TPI programming session is exited * * \section Sec_ChangeLog111009 Version 111009 * <b>New:</b> diff --git a/Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.c b/Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.c index 26ffb9f10..8d74dd47f 100644 --- a/Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.c +++ b/Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.c @@ -146,9 +146,15 @@ void TINYNVM_DisableTPI(void) { TINYNVM_WaitWhileNVMBusBusy(); - /* Clear the NVMEN bit in the TPI STATUS register to disable TPI mode */ - XPROGTarget_SendByte(TPI_CMD_SSTCS | TPI_STATUS_REG); - XPROGTarget_SendByte(0x00); + do + { + /* Clear the NVMEN bit in the TPI STATUS register to disable TPI mode */ + XPROGTarget_SendByte(TPI_CMD_SSTCS | TPI_STATUS_REG); + XPROGTarget_SendByte(0x00); + + /* Read back the STATUS register, check to see if it took effect */ + XPROGTarget_SendByte(TPI_CMD_SLDCS | PDI_RESET_REG); + } while (XPROGTarget_ReceiveByte() != 0x00); XPROGTarget_DisableTargetTPI(); } |