JTAG communication Failure

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

JTAG communication Failure

1,136件の閲覧回数
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by saismita on Thu Feb 28 23:57:42 MST 2013
Hi,
We are planning to work on a custom board having LPC4350. But when I connect ULINK2 to the board the error I am getting is JTAG Communication failure.What can be reason.Please Guide me somebody.

Regards,
SaiSmita
ラベル(1)
0 件の賞賛
返信
1 返信

1,012件の閲覧回数
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Pacman on Sun Mar 03 10:33:29 MST 2013
This can be caused by anything you can think of.

I'm no expert in this area, but I've just been through a similar situation.

If I use OpenOCD to communicate with my own boards, and there are errors, OpenOCD gives me slightly better descriptions, but not exact descriptions of the error.
It does provide hints, though.

So my first advice would be that, if possible, you try using OpenOCD.
If you haven't installed it already, it might take some effort.

If you want to skip that step, check your connections carefully. I know this can be a difficult task.

I can say, almost for sure, that your problem is that not all the connections from your chip have been made correctly.
This may include short circuits or loose connections.

The very first thing you should check, is if you have any short circuited pins.
If you use a BGA chip, it might be easiest if you check on the 'outside connections', eg. the peripherals and I/O pins, unless you have access to each ball's VIA.
Now check if all your GND (VSS) connections are in place.
Next thing, check all your VDD connections.

This is easy if you use a LQFP package - then a multimeter with beep-feature is sufficient, but if you use a BGA, you probably need more advanced equipment.

Alright, if all power and GND connections are fine, you should test from each pin on your male JTAG connector to the pins on the chip.
If these are all OK, you should check the pull-up and pull-down resistors. On my 20-pin JTAG, mine are all 10K, and I have...
Pull-up on JTAG pins 3, 5, 7, 13 and 15
Pull-down on JTAG pins 9, 17 and 19 (the lsat two might not be necessary).

Pin 15 is the reset pin, and it should have the pull-up regardless of whether or not you use the JTAG interface.
On Pin 15, I recommend having a capacitor to GND, say 100nF, unless you have a more advanced RESET-circuit.

I do not know if I can provide you with any better information than this.

If you use a BGA version of the chip, you probably have a bunch of VIAs on the back-side of your PCB. Measuring from these VIAs will not guarantee that your chip is soldered correctly, but it may help you in finding missing connections anyway, if you poke holes through the solder mask (if present) and measure to your JTAG connector.

Next, connect an Ampere-meter to your circuit.
Power up your board.
Note the current the circuit draws, this could be for instance 17 mA or 77 mA. (These values are for a single LPC4330 and a LED via a 1K resistor)
If the circuit draws below 70mA, there might be an error in the RESET pull-up connection.
If you can easily disconnect/reconnect this pin, try it out. If RESET is connected on my board, the chip eats 60mA more.

Let's assume you downloaded and installed OpenOCD.
You'll need to power up your board, then measure that you have 3.3V on your power pins.

Open up a terminal window and run OpenOCD. On Linux and Mac it'd be something like...

$ openocd -c "telnet_port 4444" -c "adapter_khz 10" -c "set CPUTAPID 0x4ba00477" -f interface/ulink.cfg -f target/lpc4350.cfg

(do not type the '$' in front of the command; this is the command-prompt)

See below for errors and some causes...

Open another window and type:

$ telnet 127.0.0.1 4444

The first thing you type in the terminal is a command to set a decent speed:

> adapter_khz 500

(again, don't type the '>' in front of the command)

> flash banks
(returns no output, and no errors)

> reset halt

JTAG tap: lpc4350.m4 tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)
JTAG tap: lpc4350.m0 tap/device found: 0x0ba01477 (mfg: 0x23b, part: 0xba01, ver: 0x0)
Only resetting the Cortex-M3 core, use a reset-init event handler to reset any peripherals or configure hardware srst support.
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x10402bac msp: 0x10089ff0
Halt timed out, wake up GDB.
timed out while waiting for target halted
TARGET: lpc4350.m0 - Not halted

in procedure 'reset'

(If you get this, you've come a long way).

> dump_image ram_tst.bin 0x10000000 0x0100
dumped 256 bytes in 0.018070s (13.835 KiB/s)

If you've come this far, your JTAG connection may work fine, but there's still room for errors, which I do not yet know how to test for.
You may be able to 'receive data' from the device, but it's possible that writing data to the device may fail.


...Common errors and causes:

If you get any of these errors right after running OpenOCD, but before connecting via telnet to your openocd...

"Error: JTAG scan chain interrogation failed: all zeroes" : This means you most likely forgot to switch on power to the board.
    Make sure that (if you use a 20-pin connector) that pins 1 and 2 are connected to VCC, and pins 4 to 10 are connected to GND.

"Error: JTAG scan chain interrogation failed: all ones" : This means you have power on your board, and your pull-up resistors are probably in place, however some of the connections to the chip have not been made. Especially check JTAG pin 7, 9, 13
    Make sure that (if you use a 20-pin connector) that pins 1 and 2 are connected to VCC, and pins 4 to 10 are connected to GND.

"Warn : There are no enabled taps.  AUTO PROBING MIGHT NOT WORK!!": You forgot to specify a TAP identification either on the command-line or in a .cfg file.

...If you get any errors using OpenOCD, that are not mentioned here (especially after entering commands), please post on this thread and I'll try and see if I can figure it out; again: I'm no expert at all, though I may be able to come up with ideas.
0 件の賞賛
返信