
--- 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