TRST usage with LPC21xx

Greetings,

OpenOCD documentation shows a Wiggler clone schematic where TRST (pin 4 of PP, pin 3 of JTAG side) control is implemented. We made up a JTAG interface according to that schematic.

My home-made, LPC2138 board using OpenOCD with this JTAG interface has some issue. OpenOCD thinks the PP interface is not connected or powered up, regardless of reset_config. I tried all possible combinations.

If I disconnect TRST on the JTAG connector (leave it pulled high on the LPC2138) OpenOCD works just fine if I have reset_config = srst_only. Why does reset_config = strst_and_trst, not work with this particular Wiggler schematic. Am I missing something?

I understand there is some issue with LPC21xx parts regarding TRST and SRST operation. Should I install a switch disconnecting TRST when working with LPC21xx parts? I do work with ATMEL parts and would like a generic JTAG interface.

Otherwise, OpenOCD is so much faster on downloads than OCDRemote, and works in a Linux environment too. Great job!

Thanks for your efforts.

Hi,

you have to specify “reset_config trst_and_srst srst_pulls_trst”, to inform the OpenOCD about LPC’s broken reset handling.

Regards,

Dominic

Thanks for the response.

As I mentioned in my post, I tried all combinations including what you suggest — that was the first one I tried as what is in the supplied config file for the Wiggler interface. Unfortunately that does not work. OpenOCD thinks the target is not powered up or there is a cable issue.

I suspect either the signal on PP pin 4 is not in valid state for Wiggler, or there is a timing/sequencing issue. Dont think most Wiggler clones use this signal, so perhaps why it has not been reported?

Not to worry, it is not a big problem for me as I can work around it by disconnecting JTAG pin 3 (TRST).

Thanks.

Hi,

I have the same problem here. I was using wriggler clone with only one reset but there were some problems, so I added the second reset like in this schematic: http://www.fh-augsburg.de/~hhoegl/proj/ … iggler.jpg.

The problem is that no matter which combination of resets I use in OpenOCD config, pin D4 is on HIGH level, so TRST is LOW. I see that, when running OpenOCD, D4 goes LOW for a while but connection to target cannot be made. I’ve moved the transistor driver from D4 (disconnected it) to D0 (so I have both resets connected to D0), and it works now (because D0 is in LOW state when programmer is not running).

It looks like D4 dont get LOW fast enought after running OpenOCD, and JTAG logic in target stays in reset when programmer tries to connect. I think that connecting both resets to D0 works OK but why doesnt it work with D4.

This situation takes place when I try to connect to LPC2101.

One question: does OpenOCD allow to program flash in LPC2101? I cant get a correct parameters in flash configuration line. I tried:

flash bank lpc2000 0 0x2000 0 0 lpc2000_v1 0 12000 calc_checksum

or

flash bank lpc2000 0 0x2000 0 0 lpc2000_v2 0 12000 calc_checksum

but OpenOCD says there are problems with size calculations (it doesnt even want to run).