Part Number: CCSTUDIO-THEIA
Other Parts Discussed in Thread: TMDSEMU110-U, TMS320F2800157-Q1
TLDR;
We see an intermittent “lock-up” between CCS and an external XDS110 (TMDSEMU110-U) when debugging F2800157 over cJTAG (1149.7) 2-pin advanced mode on Windows 11. When the lock-up happens, CCS can no longer start a debug session (often error -2131, sometimes -260) and “Test Connection” fails with SC_ERR_PATH_BROKEN (-233). Recovery consistently requires BOTH: (1) Windows Restart and (2) a full XDS110 power-cycle where BOTH USB and the cJTAG connector are disconnected. The lock-up is much more frequent in CCS 20.5.0 than in CCS 20.2/20.4/20.4.1. All tests across these CCS versions use the same XDS110 firmware: 3.0.0.41.
My colleagues and I are observing a problem with the TI XDS110 debugger on Windows 11 (not tested on other systems). The issue appears to have increased in recent months: it used to be very infrequent, but is now occurring several times a day for some of us.
We are working on two unrelated projects that both use the F2800157 MCU, but are otherwise independent. Our boards have independent power supplies, our computers are different brands, and we work from different locations.
Probe and setup notes:
-
External probe: TMDSEMU110-U (XDS110). The probe used for most of the tests is marked 518155-0001R Rev.A.
-
Target voltage has been verified with a scope and is a clean 3.3 V throughout the tests.
-
The PCB only supports cJTAG (1149.7) 2-pin advanced mode (no 4-wire JTAG option on this board).
-
All tests across CCS 20.2.0 / 20.4.0 / 20.4.1 / 20.5.0 use the same XDS110 firmware: 3.0.0.41 (confirmed with xdsdfu).
XDS110 firmware enumeration (CCS 20.5.0 installation) - used for all tests:
USB Device Firmware Upgrade Utility
Copyright (c) 2008-2019 Texas Instruments Incorporated. All rights reserved.
Scanning USB buses for supported XDS110 devices...
<<<< Device 0 >>>>
VID: 0x0451 PID: 0xbef3
Device Name: XDS110 Probe with CMSIS-DAP
Version: 3.0.0.41
Manufacturer: Texas Instruments
Serial Num: NOserial
Mode: Runtime
Configuration: Standard
Found 1 device.
Problem summary:
After some number of successful debug sessions, CCS suddenly cannot properly communicate with the XDS110 anymore. This can happen:
-
when initiating a new debug session, OR
-
in between debug sessions (example: I can debug code, terminate the debug session, then try to re-load the same .hex for debugging again, and the lock-up has sometimes happened in between).
Recovery:
Once the lock-up has occurred, recovery consistently requires:
-
Disconnect the cJTAG connector between the XDS110 and target, AND disconnect the USB cable from the XDS110 (full XDS110 power-cycle).
-
Perform a Windows Restart. After this, debugging works again.
Simply restarting CCS, unplugging/replugging USB without doing the full sequence above, or power cycling only the target board has not been sufficient once the lock-up state has occurred.
CCS versions tested / observations
We have tested CCS 20.2.0, CCS 20.4.0, CCS 20.4.1, and CCS 20.5.0 (all downloaded from the TI web page).
CCS 20.5.0 is much more prone to the lock-up than older versions. Older versions almost never fail during normal use (we have seen the issue in the past, but much less frequently).
Also important: after the lock-up occurs in CCS 20.5.0, the “broken” state persist such that any other CCS version also fails to connect (until the Recovery sequence above is performed). This makes me believe the issue involve probe/driver/USCIF state, not only the CCS GUI. The XDS110 firmware remains the same (3.0.0.41) across all these CCS versions.
Target connection properties (.ccxml)
Both projects have these (preferred) connection properties:
Board Data File: auto generated
Debug Probe Selection: Only one XD110 installed
Power Selection: Target supplied Power
Voltage Level: Default
JTAG TCLK Frequency (MHz): Fixed default 5.5Mhz frequency
JTAG Signal Isolation: Do isolate JTAG signal at final disconnect
JTAG/SWD/CJTAG Mode: cJTAG (1149.7) 2-pin advanced modes (This is the only mode available on the PCB)
Target Scan Format: OSCAN2 format - faster transisions
Auxillary COM Port Connection: Aux COM port is target UART port (Note, not used)
UART Baudrate Threshold for DMA: 115200
To test, I have been using these variations for a while, and it is still the same problem:
JTAG Signal Isolation: Don't isolate JTAG signal at final disconnect
Target Scan Format: OSCAN1 format - non adaptive scans
Normal behavior
Typically, when starting the debug, some “Configuring the Debugger...” notification popups appear, and soon after that the GEL output window shows:
RAM initialization done
Memory Map Initialization Complete
... DCSM Initialization Start ...
... DCSM Initialization Done ...
... DCSM Initialization Start ...
... DCSM Initialization Done ...
... DCSM Initialization Start ...
... DCSM Initialization Done ...
.. and debugging will comence.
CCS error messages when lock-up occurs
After a random number of debug sessions, the “Configuring the Debugger...” notifications stop appearing, and after a after a long while, CCS reports this error:
IcePick_C_0: Error connecting to the target: (Error -2131 @ 0x0) Unable to access device register. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 20.5.0.3902)
If I at this point disconnect the target board, it instead report the beloe error, till the target board is re-attatched, then it goes back to the first error.
IcePick_C_0: Error initializing emulator: (Error -260 @ 0x0) An attempt to connect to the XDS110 failed. The cause may be one or more of: no XDS110 is connected, invalid firmware update, invalid XDS110 serial number, or faulty USB cable. The firmware and serial number may be updated using the xdsdfu utility found in the .../ccs_base/common/uscif/xds110 directory of your installation. View the XDS110SupportReadMe.pdf file there for instructions. (Emulation package 20.5.0.3902)
I notice that the error messages sometimes appear in notifications and then in either the GEL output window or the Debug Output Window, but once in a while it only appear as a notification.
Test Connection logs (good vs lock-up)
To debug the issue I opened TMS320F2800157-Q1.ccxml in CCS and pressed “Test Connection” (Advanced section).
If the connection is working (CCS 20.5.0 example), I get:
-----[Print the board config pathname(s)]------------------------------------
C:\Users\DKfls\AppData\Local\TEXASI~1\CCS\
ccs2050\0\0\BrdDat\testBoard.dat
-----[Print the reset-command software log-file]-----------------------------
This utility has selected a 100/110/510 class product.
This utility will load the adapter 'jioxds110.dll'.
The library build date was 'Mar 4 2026'.
The library build time was '18:13:05'.
The library package version is '20.5.0.3902'.
The library component version is '35.35.0.0'.
The controller does not use a programmable FPGA.
The controller has a version number of '5' (0x00000005).
The controller has an insertion length of '0' (0x00000000).
This utility will attempt to reset the controller.
This utility has successfully reset the controller.
-----[Print the reset-command hardware log-file]-----------------------------
The scan-path will be reset by toggling the JTAG TRST signal.
The controller is the XDS110 with USB interface.
The link from controller to target is direct (without cable).
The software is configured for XDS110 features.
The controller cannot monitor the value on the EMU[0] pin.
The controller cannot monitor the value on the EMU[1] pin.
The controller cannot control the timing on output pins.
The controller cannot control the timing on input pins.
The scan-path link-delay has been set to exactly '0' (0x0000).
-----[Perform the Integrity scan-test on the JTAG IR]------------------------
This test will use blocks of 64 32-bit words.
This test will be applied just once.
Do a test using 0xFFFFFFFF.
Scan tests: 1, skipped: 0, failed: 0
Do a test using 0x00000000.
Scan tests: 2, skipped: 0, failed: 0
Do a test using 0xFE03E0E2.
Scan tests: 3, skipped: 0, failed: 0
Do a test using 0x01FC1F1D.
Scan tests: 4, skipped: 0, failed: 0
Do a test using 0x5533CCAA.
Scan tests: 5, skipped: 0, failed: 0
Do a test using 0xAACC3355.
Scan tests: 6, skipped: 0, failed: 0
All of the values were scanned correctly.
The JTAG IR Integrity scan-test has succeeded.
-----[Perform the Integrity scan-test on the JTAG DR]------------------------
This test will use blocks of 64 32-bit words.
This test will be applied just once.
Do a test using 0xFFFFFFFF.
Scan tests: 1, skipped: 0, failed: 0
Do a test using 0x00000000.
Scan tests: 2, skipped: 0, failed: 0
Do a test using 0xFE03E0E2.
Scan tests: 3, skipped: 0, failed: 0
Do a test using 0x01FC1F1D.
Scan tests: 4, skipped: 0, failed: 0
Do a test using 0x5533CCAA.
Scan tests: 5, skipped: 0, failed: 0
Do a test using 0xAACC3355.
Scan tests: 6, skipped: 0, failed: 0
All of the values were scanned correctly.
The JTAG DR Integrity scan-test has succeeded.
When the lock-up occurs (CCS 20.5.0 example), “Test Connection” fails with SC_ERR_PATH_BROKEN (-233):
-----[Print the board config pathname(s)]------------------------------------
C:\Users\DKfls\AppData\Local\TEXASI~1\CCS\
ccs2050\0\0\BrdDat\testBoard.dat
-----[Print the reset-command software log-file]-----------------------------
This utility has selected a 100/110/510 class product.
This utility will load the adapter 'jioxds110.dll'.
The library build date was 'Mar 4 2026'.
The library build time was '18:13:05'.
The library package version is '20.5.0.3902'.
The library component version is '35.35.0.0'.
The controller does not use a programmable FPGA.
The controller has a version number of '5' (0x00000005).
The controller has an insertion length of '0' (0x00000000).
This utility will attempt to reset the controller.
This utility has successfully reset the controller.
-----[Print the reset-command hardware log-file]-----------------------------
The scan-path will be reset by toggling the JTAG TRST signal.
The controller is the XDS110 with USB interface.
The link from controller to target is direct (without cable).
The software is configured for XDS110 features.
The controller cannot monitor the value on the EMU[0] pin.
The controller cannot monitor the value on the EMU[1] pin.
The controller cannot control the timing on output pins.
The controller cannot control the timing on input pins.
The scan-path link-delay has been set to exactly '0' (0x0000).
-----[An error has occurred and this utility has aborted]--------------------
This error is generated by TI's USCIF driver or utilities.
The value is '-233' (0xffffff17).
The title is 'SC_ERR_PATH_BROKEN'.
The explanation is:
The JTAG IR and DR scan-paths cannot circulate bits, they may be broken.
An attempt to scan the JTAG scan-path has failed.
The target's JTAG scan-path appears to be broken
with a stuck-at-ones or stuck-at-zero fault.
Test workflow that sometimes triggers the loc-up: disconnect / query / reconnect
Disconnect the target board from the XDS110 and verify communications, then reconnect the board and verify communication. In that context it is expected and correct that:
-
If the cJTAG connector is disconnected, “Test Connection” reports that no valid target supply is detected (SC_ERR_XDS110_TARGET_SUPPLY, -267).
-
After reconnecting the cJTAG connector, “Test Connection” passes again.
In CCS 20.2.0 and CCS 20.4.0, this expected behavior appears reliable. In CCS 20.5.0, the same kind of usage (normal debug sessions, and occasionally disconnecting/reconnecting the target and running “Test Connection”) sometimes appears to trigger the lock-up state described above, after which only Windows Restart + full XDS110 power-cycle recovers.
Example from CCS 20.5.0 when the target is disconnected (this output itself is expected, but in CCS 20.5.0 similar operations sometimes correlate with entering the persistent lock-up state):
-----[Print the board config pathname(s)]------------------------------------
C:\Users\DKfls\AppData\Local\TEXASI~1\CCS\
ccs2050\0\0\BrdDat\testBoard.dat
-----[Print the reset-command software log-file]-----------------------------
This utility has selected a 100/110/510 class product.
This utility will load the adapter 'jioxds110.dll'.
The library build date was 'Mar 4 2026'.
The library build time was '18:13:05'.
The library package version is '20.5.0.3902'.
The library component version is '35.35.0.0'.
The controller does not use a programmable FPGA.
An error occurred while hard opening the controller.
-----[An error has occurred and this utility has aborted]--------------------
This error is generated by TI's USCIF driver or utilities.
The value is '-267' (0xfffffef5).
The title is 'SC_ERR_XDS110_TARGET_SUPPLY'.
The explanation is:
The controller could not detect valid target supply. Check target
JTAG connection and/or connection setting specifying voltage level.
Lock-up state persists across CCS versions until recovery
After an error in one CCS version, other CCS versions can not recover the connection.
Likewise, disabeling and enabeling the debug device through the Device Manager, have no effect on the error.
Questions to TI
-
Is this a known issue with CCS 20.5.0 / emulation package 20.5.0.3902 when using XDS110 with cJTAG (1149.7) 2-pin advanced mode (OSCAN1/OSCAN2), and can it explain the persistent SC_ERR_PATH_BROKEN (-233) state after several debug sessions or after normal disconnect/reconnect usage?
-
Is there a recommended way to reset the USB controller/USCIF/XDS110 state without requiring a Windows Restart + full XDS110 disconnect (USB + cJTAG)? We are aware of xdsdfu.exe, but we have not found a procedure that clears the lock-up without the Restart + full disconnect.