Forums

Problem with Olimex ARM-USB-OCD and Rowley

Started by andersfostad February 5, 2010
Hi,

I have an Olimex P2138 board to which I connect with the Olimex ARM-USB-OCD JTAG programmer. When connecting to the board using Rowley Crossworks I keep getting the "Cannot identify target. Check JTAG connections and that the target is powered"- message. I must say, however, that I am able to make it work, so there shouldn't be anything fundamentally wrong. But, the error message keeps coming. I try resetting the board, disconnecting/reconnecting the USB cable to the programmer, and suddenly (without any specific reason) it starts working again. Anyone else who have experienced the same? Is the Olimex ARM-USB-OCD programmer unstable? Is the Rowley CrossConnect for ARM better?

These are my JTAG settings in Rowley:
Fast Memory Access: Yes
Identify target: Yes
JTAG Clock Divider:20
nTRST Open Drain: No

I have also verified that board has sufficient voltage, as too low voltage also causes similiar problems.

Regards
Anders Fostad

An Engineer's Guide to the LPC2100 Series

Hi,

> I have an Olimex P2138 board to which I connect with the Olimex
ARM-USB-OCD
> JTAG programmer. When connecting to the board using Rowley Crossworks I
> keep getting the "Cannot identify target. Check JTAG connections and that
> the target is powered"- message. I must say, however, that I am able to
> make it work, so there shouldn't be anything fundamentally wrong. But, the
> error message keeps coming. I try resetting the board,
> disconnecting/reconnecting the USB cable to the programmer, and suddenly
> (without any specific reason) it starts working again. Anyone else who
have
> experienced the same? Is the Olimex ARM-USB-OCD programmer unstable? Is
the
> Rowley CrossConnect for ARM better?
>
> These are my JTAG settings in Rowley:
> Fast Memory Access: Yes
> Identify target: Yes
> JTAG Clock Divider:20
> nTRST Open Drain: No
>
> I have also verified that board has sufficient voltage, as too low voltage
> also causes similiar problems.

"Cannot identify target" means that the JTAG ID can't be shifted out of the
chip successfully. If you're not using adaptive clocking, which you are
not, then the JTAG needs to run at 1/6th the core frequency, or slower. If
your core is running slowly our of reset, no PLL, then the JTAG TCK needs to
be SLOW. This is what Adaptive Clocking gets you, the ability to adjust the
JTAG speed automatically to the speed of the core.

Is the CrossConnect better? Depends upon context. In this instance, yes,
it supports adaptive clocking.

--
Paul Curtis, Rowley Associates Ltd http://www.rowley.co.uk
CrossWorks V2 is out for LPC1700, LPC3100, LPC3200, SAM9, and more!

Hi,

Thanks for your reply. The core is running at 58.982400 MHz (PLL = 4, 14.7456MHz crystal).

> If your core is running slowly our of reset, no PLL, then the JTAG > TCK needs to be SLOW

I do not quite understand this sentence. Should I use a JTAG divider higher than 20?

Is there any chance that the problem could be in the board itself, for example too long JTAG tracks? The board is an Olimex LPC-P2138.

Anders

--- In l..., "Paul Curtis" wrote:
>
> Hi,
>
> > I have an Olimex P2138 board to which I connect with the Olimex
> ARM-USB-OCD
> > JTAG programmer. When connecting to the board using Rowley Crossworks I
> > keep getting the "Cannot identify target. Check JTAG connections and that
> > the target is powered"- message. I must say, however, that I am able to
> > make it work, so there shouldn't be anything fundamentally wrong. But, the
> > error message keeps coming. I try resetting the board,
> > disconnecting/reconnecting the USB cable to the programmer, and suddenly
> > (without any specific reason) it starts working again. Anyone else who
> have
> > experienced the same? Is the Olimex ARM-USB-OCD programmer unstable? Is
> the
> > Rowley CrossConnect for ARM better?
> >
> > These are my JTAG settings in Rowley:
> > Fast Memory Access: Yes
> > Identify target: Yes
> > JTAG Clock Divider:20
> > nTRST Open Drain: No
> >
> > I have also verified that board has sufficient voltage, as too low voltage
> > also causes similiar problems.
>
> "Cannot identify target" means that the JTAG ID can't be shifted out of the
> chip successfully. If you're not using adaptive clocking, which you are
> not, then the JTAG needs to run at 1/6th the core frequency, or slower. If
> your core is running slowly our of reset, no PLL, then the JTAG TCK needs to
> be SLOW. This is what Adaptive Clocking gets you, the ability to adjust the
> JTAG speed automatically to the speed of the core.
>
> Is the CrossConnect better? Depends upon context. In this instance, yes,
> it supports adaptive clocking.
>
> --
> Paul Curtis, Rowley Associates Ltd http://www.rowley.co.uk
> CrossWorks V2 is out for LPC1700, LPC3100, LPC3200, SAM9, and more!
>

On Sat, 06 Feb 2010 10:50:55 -0000, andersfostad wrote:

> Thanks for your reply. The core is running at 58.982400 MHz (PLL = 4,
> 14.7456MHz crystal).

It doesn't run at 58MHz after reset, it runs of the xtal doesn't it?

>> If your core is running slowly our of reset, no PLL, then the JTAG >
>> TCK needs to be SLOW
>
> I do not quite understand this sentence. Should I use a JTAG divider
> higher than 20?

Sometimes you might have to.

> Is there any chance that the problem could be in the board itself, for
> example too long JTAG tracks? The board is an Olimex LPC-P2138.

There is always a chance of anything. I suggest you see if you can
connect when the board is running the bootloader out of reset, that is
ground P0.14 and reset the part, then see if you can connect correctly.
If you're developing with CrossWorks, do not set STARUP_FROM_RESET, for
all the reasons explained in our FAQs.

--
Paul Curtis, Rowley Associates Ltd http://www.rowley.co.uk
CrossWorks V2 is out for LPC1700, LPC3100, LPC3200, SAM9, and more!
--- In l..., "Paul Curtis" wrote:
>
> On Sat, 06 Feb 2010 10:50:55 -0000, andersfostad wrote:
>
> > Thanks for your reply. The core is running at 58.982400 MHz (PLL = 4,
> > 14.7456MHz crystal).
>
> It doesn't run at 58MHz after reset, it runs of the xtal doesn't it?

Your right. It starts of the xtal and then switches to 58MHz during reset because of the VPBDIV_VAL=1

> >> If your core is running slowly our of reset, no PLL, then the JTAG >
> >> TCK needs to be SLOW
> >
> > I do not quite understand this sentence. Should I use a JTAG divider
> > higher than 20?
>
> Sometimes you might have to.
>
> > Is there any chance that the problem could be in the board itself, for
> > example too long JTAG tracks? The board is an Olimex LPC-P2138.
>
> There is always a chance of anything. I suggest you see if you can
> connect when the board is running the bootloader out of reset, that is
> ground P0.14 and reset the part, then see if you can connect correctly.

I'll try this next time I can't connect. Thanks.

> If you're developing with CrossWorks, do not set STARUP_FROM_RESET, for
> all the reasons explained in our FAQs.
>
> --
> Paul Curtis, Rowley Associates Ltd http://www.rowley.co.uk
> CrossWorks V2 is out for LPC1700, LPC3100, LPC3200, SAM9, and more!
I develop in CrossWorks and I must admit that I have STARTUP_FROM_RESET defined. I'll remove that.
Thanks again.

Regards
Anders