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.
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_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.
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.
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).
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.
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.
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?
Look closer at the schematic, young grasshopper. 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. 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.
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.