Olimex LPC2148 Proto Board

I got my new proto board yesterday, but so far have not been able to get any real communication with it. I also have Rowley Crossworks for ARM v1.7 installed and am evaluating it. I don’t really like the Eclipse way of doing things, so am considering getting a personal license for Crossworks.

I have an [Olimex JTAG USB OCD Tiny for programming and debugging. I think the PID may be wrong in Crossworks for the Tiny, but I don’t know how to check or change this. I had this problem when I initially installed the Eclipse environment with OpenOCD. I am trying to figure out how to get Crossworks to see my JTAG unit now.

When I select Target → Olimex ARM USB TINY, I get “Can not identify target, check JTAG connections and that the target is powered.” Everything is powered. The Tiny and Protoboard are both connected to my PC via USB, power light on the proto board is lit and the LED on the Tiny is lit. When I try to connect with the Tiny from Crossworks, I get two blinking LEDs on the proto board (above the two pushbuttons).

The drivers for the Tiny are installed and it is detected by Windows XP SP2. There is no detection of the proto board by Windows so far.

Do I need to “install” OpenOCD into Crossworks to make everything work? I am looking for information on this now in the help and on the Rowley site.

I also can not get any communications between the LPC2000 Flash Utility v2.2.3 and my proto board using either serial port. I don’t know what speed I should be using for the com port and Windows. The LPC utility can not read the device ID and will not allow me to select LPC-2148 for my device. It is stuck on LPC-2294 and I can not change it.

Any assistance would be appreciated.

8-Dale](JTAG USB OCD Tiny - Programmer/Debugger for ARM processors - PGM-08278 - SparkFun Electronics)

CrossWorks shouldn’t need any other software to work with a particular target, it has everything built-in. I use it with my own Wiggler clone, a real Wiggler and a CrossConnect without any problems.

Have you set the jumpers correctly? If you can’t communicate with the board using the serial port, it might be faulty.

Leon

leon_heller:
Have you set the jumpers correctly? If you can’t communicate with the board using the serial port, it might be faulty.

Are you saying the new proto board might be faulty or the JTAG unit? On the proto board, the jumper is installed for DBG_E, but I don't know if the dip switches are set right - both are set to OFF now as shipped.

8-Dale

It could be either. I have a few different boards here and different interfaces so it is quite easy to locate problems by swapping things.

Correct jumper/switch settings are vital, you need to check the documentation carefully.

Leon

The easiest way to test if the board is OK is to flash the chip over the serial port rather than JTAG. I think this was what Leon was hinting at.

brennen:
The easiest way to test if the board is OK is to flash the chip over the serial port rather than JTAG. I think this was what Leon was hinting at.

I can't get any communication with my proto board using the LPC utility. It can't read the device ID and I can't change the type to LPC2148 in the program. I have tried both serial ports without success.

8-Dale

My setup when using the JTAG probe:

Dip Switch both off, they are not related to JTAG anyway (related to ICSP).

DBG_E jumper inserted.

VREF jumper, not related, leave it inserted.

RS1/UEXT, set it depending on your usage, use RS1 if using serial port 1, UEXT if using the UEXT connector.

I am using the Eclipse setup on the Olimex CD but YAGARTO as compiler.

I never used it but I think that in order to use the serial programming both the dip switches must be in position on.

I think he tried the serial port, but it didn’t work.

I’m quite sure it is because the board isn’t configured correctly. Check the settings for P0.14 (controls booting from RS-232) and RTCK (needs to be held low to enable the JTAG).

Leon

If you want to try the serial port, turn both switches on on the board. The other jumpers shouldn’t matter too much, but it might not hurt to pull the DBG_E jumper. On the LPC2000 Flash Utility (make sure you’re using version 2.2.3), set your COM port to whatever is appropriate, but make sure your baud rate is 38400 (9600 works, too, but is much slower). Check the box by “Use DTR/RTS for Reset and Boot Loader Selection”. I generally check the box by “Execute Code after Upload”, as well, as this will reset your chip after you program it to run your code. Finally, change the “XTAL Freq. [kHz]:” field to 12000.

Now, you should be able to do something interesting. If checking the device ID doesn’t work, try other buttons on the flash utility and see if anything happens. You may have to manually reset the LPC2148 to get anything to happen, but using DTR/RTS should alleviate you from this need if you have the switches set properly.

I HAVE SUCCESS NOW! :D:D

  1. I had to go to the schematic for my LPC2148 Proto Board to find out that BSL (on the proto board) is P0.14.

  2. I jumpered BSL (P0.14) to GND.

  3. DIP switches are both set to ON

  4. Jumpers installed: DGB_E, RS1/UEXT is jumpered for UEXT

  5. I have my serial cable plugged into Serial Port 0, set to 38400 Bps in the LPC2000 Flash Utility v2.2.3.

Now the LPC2000 utility reads the device ID and correctly identifies the LPC-2148!

Many thanks to everyone for the suggestions and assistance with this.

8-Dale

UPDATE: Crossworks still does not find my LPC-2148 Proto Board. :frowning:

8-Dale

You need to change the jumpers, etc.

Leon

BSL is handled by one of the switches. You shouldn’t have to manually jumper it out to program the device over serial, just turn on the switch.

brennen:
BSL is handled by one of the switches. You shouldn’t have to manually jumper it out to program the device over serial, just turn on the switch.

According to the schematic, BSL goes directly to a tiepoint near the protoboard area. There is no dipswitch in between if the schematic I am looking at is current.

8-Dale

leon_heller:
You need to change the jumpers, etc.

I changed the dip switches to both OFF, reset my board, and tried to connect with Crossworks. No dice. Still no communication. I am starting to suspect my [[JTAG USB OCD Tiny](http://www.sparkfun.com/commerce/product_info.php?products_id=8278) is defective. If that is the case, it was defective when I got it. I never could really do anything with the LPC2148 header board I bricked.

Could a defective JTAG unit be reponsible for bricking a board?

8-Dale](JTAG USB OCD Tiny - Programmer/Debugger for ARM processors - PGM-08278 - SparkFun Electronics)

Look closer at the schematic, young grasshopper. :wink: If the switch is off, R11 acts as a pull-up to 3.3V to disable ISP. If the switch is on, you are pulled down to (near) ground by R12, and at the next reset, you will go into ISP mode (if the switch is still on at that time, of course).

If you can successfully flash a program to your prototype board with the LPC2000 Flash Utility (which I would highly recommend you trying), you might try it again with your header board. There’s a very good chance that you might get it going now that you have the flash utility set up correctly.

brennen:
Look closer at the schematic, young grasshopper. :wink: If the switch is off, R11 acts as a pull-up to 3.3V to disable ISP. If the switch is on, you are pulled down to (near) ground by R12, and at the next reset, you will go into ISP mode (if the switch is still on at that time, of course).

I will check the schematic closer. :D Thanks.;)

brennen:
If you can successfully flash a program to your prototype board with the LPC2000 Flash Utility (which I would highly recommend you trying), you might try it again with your header board. There’s a very good chance that you might get it going now that you have the flash utility set up correctly.

I have already flashed my proto board successfully several times. I am going to try my header board again.

8-Dale

You might need to slow the JTAG clock, it is set to max. as default by CrossWorks.

Leon

leon_heller:
You might need to slow the JTAG clock, it is set to max. as default by CrossWorks.

I do not see where to change this. I have looked through the menus and can not see anywhere to change it. The documentation doesn't even reference the [[JTAG USB OCD Tiny](http://www.sparkfun.com/commerce/product_info.php?products_id=8278). it has a reference to the more expensive unit, but not the Tiny. The only place I have seen the Tiny even mentioned is in the Targets menu.

I found several references to reducing the JTAG clock frequency, but this is only in reference to the CrossConnect or Wiggler, and did not show where or how to change the value. This setting does not appear to apply to the Olimex USB OCD Tiny or it’s larger and more expensive sibling.

Oh well, I only have 5 days left on my evaluation for Crossworks for ARM, so it looks like I will not be getting it for long term use. I am starting to suspect the Tiny was an afterthought and perhaps the support is not really all there, at least not yet.

8-Dale](JTAG USB OCD Tiny - Programmer/Debugger for ARM processors - PGM-08278 - SparkFun Electronics)