ARM Technical Support Knowledge Articles


Applies to: ULINK USB-JTAG Debugger


Information in this article applies to:


I have worked several days successfully with the Keil ULINK and a Philips/NXP LPC2000 ARM device. Now, when I download a slightly modified application the device no longer responds.

I only get an error message box with:

JTAG Communication Error

What can cause this?


Your application program has most likely disabled the JTAG port during program execution. ARM devices start program execution even when the JTAG adapter is connected. When your application software disables the JTAG port, it is no longer possible to connect to the device via the JTAG interface.

You may recover an NXP LPC2000 ARM device with the Flash Magic Programming Tool from Embedded Systems Academy that erases the application software via a serial interface.

Once you have recovered your device, you should use a while loop at the main entry of your application program as described under ULINK: RESET BEHAVIOUR ON PHILIPS LPC2000 DEVICES. This technique allows you to analyze the instruction (typically in the device initialization) that disables the JTAG interface.

For example, the execution of the following C statement disables the JTAG pins:

PINSEL2 = 0x8

Altering PINSEL2 in this way, basically disables the JTAG port.

Other reasons for such a problem might be the Watchdog timer. When you enable the watchdog, debugging may fail. So you should search your program for sequences like the following:

WDTC = 15103; // Timer reload value 15103*4*(1/60MHz)=1.0ms
WDMOD = 3;    // WDEN = WDRESET = 1

Basically, the watchdog should be not enabled under debugging.



Article last edited on: 2008-02-28 06:58:02

Rate this article

Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential