---
arch/arm/mach-lpc21xx/tools/lpc21isp/lpc21isp.c | 20 +++++++++-----------
1 files changed, 9 insertions(+), 11 deletions(-)
diff --git a/arch/arm/mach-lpc21xx/tools/lpc21isp/lpc21isp.c b/arch/arm/mach-lpc21xx/tools/lpc21isp/lpc21isp.c
index a34b040..80db8e5 100644
--- a/arch/arm/mach-lpc21xx/tools/lpc21isp/lpc21isp.c
+++ b/arch/arm/mach-lpc21xx/tools/lpc21isp/lpc21isp.c
@@ -1210,17 +1210,15 @@ void ResetTarget(ISP_ENVIRONMENT *IspEnvironment, TARGET_MODE mode)
{
/* Reset and jump to boot loader. */
case PROGRAM_MODE:
- ControlModemLines(IspEnvironment, 1, 1);
- Sleep(100);
- ClearSerialPortBuffers(IspEnvironment);
- Sleep(100);
- ControlModemLines(IspEnvironment, 0, 1);
- //Longer delay is the Reset signal is conected to an external rest controller
- Sleep(500);
- // Clear the RTS line after having reset the micro
- // Needed for the "GO <Address> <Mode>" ISP command to work */
- ControlModemLines(IspEnvironment, 0, 0);
- break;
+ ControlModemLines(IspEnvironment, 0, 0); // release MCU
+ Sleep(100);
+ ControlModemLines(IspEnvironment, 1, 1); // reset MCU + set ISP
+ Sleep(100);
+ ClearSerialPortBuffers(IspEnvironment);
+ Sleep(100);
+ ControlModemLines(IspEnvironment, 0, 1); // relese MCU and hold ISP
+ Sleep(200); // give CPU some time
+ break;
/* Reset and start uploaded program */
case RUN_MODE:
--
1.7.2.2