I have purchased a TMS320-XDS100v3 in order to work on our custom CC13XX board, via IAR 7.40.3.
At first all went well, but now I get a message "Failed to halt after bootloader 1".
I have also the smartRF EVB with an integrated XDS100v3 and it never fails.
I have opened a thread with TI support (https://e2e.ti.com/support/wireless_connectivity/bluetooth_low_energy/f/538/p/426334/1826557#pi239031350=2 (https://e2e.ti.com/support/wireless_connectivity/bluetooth_low_energy/f/538/p/426334/1826557#pi239031350=2)) and they suggested that the CLK-RESET timing is wrong.
I have captured the loading process both on the TMS320-XDS100v3 and the EVB, from which it clear that the TMS320-XDS100v3 DOES HAVE a problem.
I was unable to upload the images, but I will be happy to share it by eMail (just give me an address to send to).
Please test with another software tool - "SmartRF Flash Programmer 2" or "Code Composer Studio 6" for example. I'd suggest that the problem is somewhere in your design or connection since I've tested similar connection. I would suggest that you have forgotten to take care of TDIS line. Try with the two different positions of the ARM_JTAG_E jumper of the emulator.
I also got a SmartRF06 evaluation board with CC2650 to test it under various software development tools (including SmartRF Flash Programmer 2 and Code Composer Studio 6) using Olimex TMS320-XDS100-V3+. I tested with both 20-pin ARM JTAG connection and 10-pin ARM JTAG connection. Refer to the link below for my hardware setup (note that the row of jumpers for by-passing the on-board XDS100v3 is disconnected):
I also tested the on-board XDS100v3 - it behaved exactly as and Olimex TMS320-XDS100-V3 both during programming and debugging.
I couldn't replicate your issue at all. Programming with the default examples (and binaries) provided for the SmartRF06 CC2650 worked as charm every time. Refer to the screenshot linked below:
It might be an erroneous option or setting in IAR EW.
Thanks for your assistance.
1. There is no point checking with another software tool since I can't debug with flash programmer and I don't have CCS6.
2. I'm using the ARM_JTAG connector, connecting the TMS, TDI, TO, TCK, RESET, GND and VTref. Should I use other line?
3. Can you look at the images captured from scope in order to help me solve this issue?
I also tested debugging under IAR. Everything works fine here again. Here are the pictures for debugging under IAR:
Hardware setup: https://drive.google.com/file/d/0B7WHuNCASY8cR0VlSTNBckIzZlE/view?usp=sharing
Debugging window: https://drive.google.com/file/d/0B7WHuNCASY8cZFhRVjQ3bVdGZkk/view
Project options (I also tested the 4-wire JTAG option and it still works fine): https://drive.google.com/file/d/0B7WHuNCASY8cNV9WZ2pQeHpvLUU/view?usp=sharing
1. Did you close ARM_JTAG_E jumper? Did you open both J4 and J5 jumpers?
2. Trace each signal and wire. I believe there is some problem with your connections.
1. Yes, the arm jumper is closed while the other two are open (you can see it in the new images I have uploaded).
2. I have uploaded images of my board and the wires I have used. Can you verify that all wires were connected properly and no wire was missed?
It did work at first with this configuration and the same project, so it is very frustrating...
I understand that you need the emulator for a custom board. Yet, for purely testing purposes, why don't try to use the TMS320-XDS100-V3 with the SmartRF EVB board that you have? Like I did (our hardware setups are pretty similar). This would show better if there is a problem with the connections to the custom board since you don't need custom cables and adapters for the connection (you can see in my hardware setup pictures above - just a straight 20-pin 0.1" female-female cable).
You can disable the on-board XDS100v3 of the SmartRF EVB board (remove the two jumpers on the header XDS100v3 BYPASS) and use TMS320-XDS100-V3 with the 20-pin ARM JTAG connector. Remember to power the SmartRF06 EVB from the microUSB. Make sure to select the proper interface in IAR EW (both debuggers would be listed because of the microSD connection but only the Olimex one would work when the jumpers are removed).
If you want to be extra sure that you are using the Olimex XDS100, first disconnect the SmartRF board and then find the serial of the Olimex XDS100 then specify it in IAR EW. You can use the command line utility in CCS6 or inspect the entries in Windows Device Manager - the "Device Instance Path" property of "USB Composite Device" shows the serial number. In my case the serial number is FTAC8IW (but it would be different for you since it is randomly generated). Refer to the picture:
Edit: I looked at your images - it seems to me that you are using wrong pin for RESET; try with pin 15 instead of pin 3. Also this schematic of a 10-20 pin adapter might be helpful: https://www.olimex.com/Products/ARM/JTAG/ARM-JTAG-20-10/resources/ARM-JTAG-20-10-schematic.pdf
It seems to solve the problem.
Just for my knowledge, what is the difference between TRSTn (PIN3) and SRSTn (PIN15)?
Thank you for your help,
Glad the issue got solved. About the resets:
System Reset (SRST or nSRST = nRESET in TI's naming conventions) - mandatory signal - the SRST hardware signal resets all chips connected to the JTAG adapter, such as processors, power management chips, and I/O controllers. Normally resets triggered with this signal behave exactly like pressing a RESET button.
JTAG TAP Reset (TRST or nTRST) - optional signal - the TRST hardware signal resets just the TAP controllers connected to the JTAG adapter. Such resets should not be visible to the rest of the system; resetting a device's TAP controller just puts that controller into a known state.
Read more in the official ARM documentation here (there is a definition for each JTAG signal in the bottom table): http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0499b/BEHEIHCE.html