Rowley Crossworks and Cortex-M3

Hi Everyone,

I’ve built my own JTAG interface based on Joern Kaipf’s design (http://www.joernonline.de/) which uses an FT2232D. Well, after working out a couple of hardware bugs and modifying the original design to make it more reliable, I was able to program and debug my ARM7 target boards (Atmel’s SAM7 series) using Rowley’s Crossworks with no problems. I selected the “Generic FT2232 Device” as my JTAG interface and I was off and running. I then downloaded the package for STMicro’s STM32 family which has an ARM Cortex-M3 core. I created a new project in Crossworks and selected the STM32F103 libraries and so on. I then chose the same JTAG interface and I got the following error message: “Cannot identify target. Check JTAG connections and that the target is powered.” I’ve check this forum and others to see if anyone has had the same problem. I find similar problems posted for the Olimex-OCD interface, and the answers that were suggested either do not work or are not available as an option in Crossworks for my JTAG interface.

I’ve checked the signals (TRST, TDI, TMS, TCK, TDO, and SRST) going into the target boards. For the SAM7 boards, all signals seem to operate correctly. For the STM32 boards, all signals going into the board seem to operate correctly. The TDO line seems to be in the hi-z state (no output driver). It seems that the target does not recognize the bit stream or thinks that it is not the target of the bit stream.

I think it is some sort of configuration problem, but I don’t know enough about the JTAG interface to know what’s going on. I’m hoping someone out there can help me.

Thanks in advance.

beethoven62

Try using a slower JTAG clock.

Leon

Been there, done that.

Found the problem. Crossworks has a default setting for the Generic FT2232 Device. Under the FT2232 Pin Configuration section, the Output Value was set to 0x0C08 by default. This set the TRST pin low. I changed that value to 0x0E08 which sets TRST high and everything works now.