JTAG not working on LPC4337

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

JTAG not working on LPC4337

1,762 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by vtl on Thu Jan 09 20:47:59 MST 2014
I have a prototype board that I am trying to get up and running with JTAG. I cannot get it to connect at all. I am able to connect via ISP, load in a firmware file via flash magic and see some LEDs light up so I am confident the board is working.

I have ruled out the obvious things:
Reset pin is high
continuity on the jtag pins
3.3V supply rail is good
No shorts between pins
DBGEN pin is high

I am using Rowley Crossworks with a Rowley Crossconnect. I have been doing firmware development on a WaveShare development board until now (has identical LPC4337JBD144 on the board) and JTAG works fine.

When I try to connect to the prototype, I just get "cannot set debug register".

Have also tried:

We have also assembled a second prototype board with just the CPU and power supply to determine if the first board had a defective part.
Checked the SWD connections against the 43xx datasheet. Fitted SWDIO and SWDCLK with 10K pullups
Loaded on a fullsize 20 way jtag header and configured the pullups identical to the working WaveShare core43xx development board (10K pullups on TDO, TCK and pin 11)

None of the above has fixed the issue


Any ideas would be appreciated.









Labels (1)
0 Kudos
Reply
4 Replies

1,306 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by vtl on Wed Jan 29 15:02:46 MST 2014
Turns out both 4337 chips had faults on one of JTAG pins. They had impedance of a few hundred ohms. Interesting thing is they were on different pins. I don't know if they were faulty out of the packaging or whether they were damaged during assembly from ESD.

All working fine now at least
0 Kudos
Reply

1,306 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Pacman on Wed Jan 29 09:49:28 MST 2014
I've built two breadboards using the LPC43xx and have them working. Both are using the LQFP144 packages. Of course I had problems in the beginning, but after re-checking an unknown number of times, I found that I made incorrect connections on the JTAG interface.

Here's my working setup:
10K Pull-up on ~TRST [3], TDI [5], TMS [7], TDO [13], nRESET [15]
10K Pull-down on TCLK [9], RTCK [11], DBGRQ [17] and DBGACK [19]

The 'nRESET' must of course always have a pull-up, no matter if JTAG is used or not. It's a good idea to also put a 100nF ceramic capacitor from GND to nRESET (but it will work on a test-board without it).

With the above setup, I've successfully programmed the internal flash-memory of a LPC4337 and OpenOCD using JTAG-lock-pick Tiny 2, Olimex ARM-USB-TINY-H and Olimex ARM-USB-OCD-H.

Although the DBGRQ and DBGACK have pull-downs, it should work even if they're floating.
It doesn't matter much how I set the P2_7 pin, when using OpenOCD 0.8.0; I've actually ended up leaving it as floating (!)

If you are using OpenOCD 0.7.0, you will run into trouble; you need to pull the latest git version (0.8.0), which have endian problems fixed plus the LPC2000 driver for the LPC43xx is fixed.

Regarding debugging, I have no experience in this area. I never use a debugger (other than OpenOCD itself) for microcontrollers, but hopefully you would be able to connect to the device and flash-program it.
0 Kudos
Reply

1,306 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by vtl on Fri Jan 10 01:56:01 MST 2014
Boot mode pins are set to USART3 (10k pullup and pulldowns) and as said before I am already able to get a firmware running on the device via ISP. Code protection register is disabled.
0 Kudos
Reply

1,306 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by TheFallGuy on Fri Jan 10 00:44:45 MST 2014
Did you check the Boot Mode pins?
0 Kudos
Reply