- 1 What is XDS200?
- 2 General Features
- 3 Which XDS200 is right for me?
- 4 Installation Instructions
- 5 The unboxing and first run video
- 6 What are the known issues?
- 7 Updating the XDS200 firmware
- 8 Finding and updating the serial number
- 9 Debug and Trace Usage Modes
- 10 Troubleshooting
- 11 FAQ
What is XDS200?
XDS200 is the newest class of JTAG debuggers for Texas Instruments' microcontrollers and embedded processors.
It offers a balance of low cost with good performance between the super low cost XDS100 and high performance XDS560 classes of JTAG debuggers and is compatible with Code Composer Studio™ development environment version 5.2.0 and newer.
The XDS200 is available as a standalone debug probe (check section 3 below) or can be embedded on a development card (DSK, EVM, etc.). One example is the TMDSEVM6657LS.
The Texas Instruments' reference design for XDS200-class has the following features (Please check your vendor for hardware details):
- Debug features (Emulation Connect/Disconnect, Read/Write memory, Read registers, Load program, Run, Halt, Step, Software and Hardware Breakpoint support, Real-Time Mode)
- Support for targets with 1.8v and 3.3v IO voltages.
- Support for "JTAG reset"/"wait-in-reset" boot-modes using the two EMU pins sampled by the nTRST pin.
- Support for "Power-on reset" boot-modes using the two EMU pins sampled by the TVD pin.
- Support for the configuration of the EMU pin features through Code Composer Studio™ Setup "connection properties" dialogs similar to those for the XDS560 Rev-D cable.
- Support for "target power-loss detection" via the TVD pin even when Code Composer Studio™ is not running, and applying boot-modes at Code Composer Studio™ start-up.
- Supports ETB trace and SWD modes
Which XDS200 is right for me?
There are some XDS200 products on the market from both Spectrum Digital and Blackhawk. Some models provide different host interfaces such as USB and Ethernet, while others offer features such as power consumption measurement.
- Spectrum Digital XDS200 USB Product - Also available directly from Spectrum Digital
- Spectrum Digital XDS220 USB/Ethernet Product Page
- Spectrum Digital XDS220 USB/Ethernet Product Page (with Isolation)
- Spectrum Digital XDS2xx Support Page
- Blackhawk XDS200 USB Product Page
- Blackhawk tutorial - Debugging with multiple USB200 emulators.
- The XDS200 from Blackhawk can be galvanically isolated with the usage of Blackhawk's isolation adapter
- Make sure the XDS200 is not plugged in!
- Install Code Composer Studio.
- If you are running CCSv5.3.0 or later then all required software is present. If you are running CCSv5.2.x then you need to install the latest emulation update via the update manager in CCS.
- Plug in the XDS200. It should be properly recognized by the system.
The unboxing and first run video
Watch the video, hosted on the Code Composer channel on Youtube:
What are the known issues?
- USB3.0 and Linux and Mac OSX
- When connected to USB3.0 ports and hubs in Linux OSes, XDS200 JTAG debuggers are not able to properly be initialized by the low-level device drivers. If you update to the latest "TI emulators" package and update the firmware on the xds200 pod then you can connected it to a USB3 port with Linux. Note that if you only have USB3 ports on your computer then you will need to use Windows to update the firmware as the software has to be able to detect the pod to update it.
- There are reported issues when connecting a XDS200 to a bus powered USB2.0 hub. To repair that, either get a self powered hub or connect it directly to a port in the computer.
- When connected to USB3.0 Renesas adapter on Windows, XDS200 fails to properly initialize - check this e2e post for details.
- There is a tendency of Windows device drivers to ignore the connected XDS200 JTAG debugger if it is connected to the same USB port repeatedly. Reconnecting the XDS200 to a different USB port makes the device drivers to be properly instantiated.
- Issues were found when connecting a XDS200 with a firmware older than 184.108.40.206 on MacOS X and certain Linux distros - the error thrown is typically a Host connection error. At the moment the only way to workaround this is to update the firmware version on a Windows PC.
- Not an issue, but a common usability trait. Certain boards have onboard XDS200 JTAG debuggers, but the configuration is easy to miss. For these boards, always select Texas Instruments XDS2xx USB Onboard Debug Probe.
- Not a issue, but a compatibility break. One of the released TI emulation components (5.1.600.0) breaks compatibility with XDS200 JTAG debuggers and previous releases of CCS. Details are shown here. The newest release (6.1.636.0) solves this issue.
Updating the XDS200 firmware
When installing a newer release of CCS or updating the TI Emulators component of CCS (details on the XDS Emulation Software Package page or Updating CCSv6 page), keep in mind you may need to update the firmware of your JTAG debugger.
- IMPORTANT! Very old firmware releases such as the ones present in Keystone II EVMs (220.127.116.11) are known to have problems updating. In general they work well in Windows, therefore proceed with the update at your own risk as the JTAG debugger may be bricked and only recoverable by returning the board for repair.
To update a XDS200-class JTAG debugger connected via USB, using a Windows host is highly recommended. Close any instances of CCS that are running in your system. Open a Windows Command Prompt and issue the following commands:
- 1. Go to the directory where the utility is installed:
- C:\>cd C:\ti\ccsv6\ccs_base\common\uscif\xds2xx
- C:\>cd C:\ti\ccsv6\ccs_base\emulation\specdig\xds2xx - this only exists if Spectrum Digital support is installed. It is mandatory if you have a XDS220 JTAG debugger.
- 2. Run the configuration just to make sure a XDS200-class debugger is connected and what is the firmware revision installed on it:
- C:\ti\ccsv6\ccs_base\common\uscif\xds2xx>xds2xx_conf get xds2xxu 0
- If you have a single XDS200 connected via USB:
- 3a. Run the commands in the exact order shown below (the batch file update_xds2xx does this in reverse order, increasing the chances of failure):
- C:\ti\ccsv6\ccs_base\common\uscif\xds2xx>xds2xx_conf update xds2xxu 0 xds200_firmware_v1008.bin
- C:\ti\ccsv6\ccs_base\common\uscif\xds2xx>xds2xx_conf program xds2xxu 0 xds200_cpld_v1008.xsvf
- C:\ti\ccsv6\ccs_base\common\uscif\xds2xx>xds2xx_conf boot xds2xxu 0
- 4a. After that, run the command in step 2 again to check if the correct firmware was loaded.
- C:\ti\ccsv6\ccs_base\common\uscif\xds2xx>xds2xx_conf get xds2xxu 0
- Note: depending on the version of the XDS Emulation Software Package installed, the firmware and the CPLD filenames may change.
- If you have a single XDS220 or XDS220ISO connected via USB:
- 3b. Run the commands in the exact order shown below (the batch file update_xds2xx does this in reverse order, increasing the chances of failure):
- C:\ti\ccsv6\ccs_base\emulation\specdig\xds2xx>xds2xx_conf update xds2xxu 0 sd_xds220_firmware_v1008.bin (use sd_xds220_iso_firmware_v1008.bin for XDS220ISO)
- C:\ti\ccsv6\ccs_base\emulation\specdig\xds2xx>xds2xx_conf program xds2xxu 0 xds2xx_xc64_swd.xsvf (use xds2xx_xc64_iso.xsvf for XDS220ISO)
- C:\ti\ccsv6\ccs_base\emulation\specdig\xds2xx>xds2xx_conf boot xds2xxu 0
- 4b. After that, run the command in step 2 again to check if the correct firmware was loaded.
- C:\ti\ccsv6\ccs_base\emulation\specdig\xds2xx>xds2xx_conf get xds2xxu 0
- Note: depending on the version of the Spectrum Digital support package installed, the firmware and the CPLD filenames may change.
To update a XDS200-class JTAG debugger connected via Ethernet, issue the following commands:
- Go to the directory where the utility is installed:
- C:\>cd C:\ti\ccsv6\ccs_base\emulation\specdig\xds2xx
- Run the configuration just to make sure the XDS200-class debugger is reachable on the network and what is the firmware revision installed on it (replace xxx.xxx.xxx.xxx with the XDS220's Ethernet address):
- C:\ti\ccsv6\ccs_base\emulation\specdig\xds2xx>xds2xx_conf get xds2xxe xxx.xxx.xxx.xxx
- Update the CPLD by providing the debug probe model (xds2xxe), the IP address (xxx.xxx.xxx.xxx in the example below) and the .xsvf filename. Do not use this with the XDS220ISO model!
- C:\ti\ccsv6\ccs_base\emulation\specdig\xds2xx>xds2xx_conf update xds2xxe xxx.xxx.xxx.xxx xds2xx_xc64_swd.xsvf (use xds2xx_xc64_iso.xsvf for XDS220ISO)
- Update the firmware by providing the debug probe model (xds2xxe), the IP address (xxx.xxx.xxx.xxx in the example below) and the firmware filename.
- C:\ti\ccsv6\ccs_base\emulation\specdig\xds2xx>xds2xx_conf update xds2xxe xxx.xxx.xxx.xxx sd_xds200_firmware_v1008.bin (use sd_xds220_iso_firmware_v1008.bin for XDS220ISO)
- Note: depending on the version of the XDS Emulation Software Package installed, the firmware filename <sd_xds200_firmware_v1008.bin> may change.
For Spectrum Digital JTAG debuggers, open the file <readme.txt> under the directory <CCS_INSTALL_DIR>\ccsv6\ccs_base\emulation\specdig\xds2xx for details of your model and version.
For other brands of JTAG debug probes, follow the instructions of its manufacturer.
Finding and updating the serial number
When using multiple debug probes in the same host, it is necessary to set different serial numbers and enable its usage on the Debug Probe firmware.
To find out what is the serial number of all connected debug probes, follow steps 1 and 2 above, then locate the option serialNum
If you want to set the serial number to a specific value:
- Unplug all other debug probes from the host
- Follow steps 1 and 2 above
- Enable the option EnableUSBSerial by issuing the following:
- C:\ti\ccsv6\ccs_base\common\uscif\xds2xx>xds2xx_conf set xds2xxu 0 EnableUSBSerial=true
- Then set the serial number:
- C:\ti\ccsv6\ccs_base\common\uscif\xds2xx>xds2xx_conf set xds2xxu 0 serialNum=00:11:22:33:44:55
At this point you may unplug this probe and repeat the operation for the subsequent probes.
Debug and Trace Usage Modes
The XDS200 allows using multiple modes of operation through the option JTAG / SWD / cJTAG Mode of the Target Configuration Editor:
JTAG: compliant with IEEE1149.1
- 4 pin debug (TDI, TDO, TMS, TCLK)
- Supports TVRef
SWD: Serial Wire Debug
- 2 pin debug: SWDIO/TMS and SWCLK/TCLK
SWO: Serial Wire Output
- 1 pin trace (SWO/TDO)
- Supported only by DAP based devices like MSP432 which have DAP as the toplevel router in the scan chain.
- SWO trace can be obtained in UART or Manchester format. XDS200 only supports UART format. The TDO/SWO pin is routed to a UART on the debug processor (Snowflake) during SWO capture.
- SWO (ITM) Usesecases:
- Function profiling (DWT - Data Watchpoint and Trace)
- Data variable trace (DWT - Data Watchpoint and Trace)
- Interrupt profiling (DWT - Data Watchpoint and Trace)
- Software messages (ITM - Instrumentation Trace Macrocell)
For additional details about Trace via SWO, check the following resources:
cJTAG: Compact JTAG or IEEE_1149.7
- 2 and 4 pin modes
- 6 OSCAN modes
- Supported by selected Wireless Connectivity devices such as CC13xx, CC25xx, CC26xx and CC32xx families.
- Check whether the installation process was followed.
- Please check the section regarding Troubleshooting CCS.
Q: Where can I purchase an XDS200?
Check the section 3 above. Also, The XDS200 standalone JTAG debug probe can be purchased from the TI store.
Q: What devices are supported by XDS200?
The XDS200 supports our Stellaris, C2000, Hercules, Sitara, C66xx, C64x+, C674x, C55xx, C54xx, DaVinci and OMAP. It does not support MSP430 or older families like C62xx, C670x, C671x, C672x, C641x.
Q: Can I build my own XDS200?
The XDS200 reference design is only available to TI emulation partners. The XDS100 reference design is freely available for download.
Q: What is the XDS200 performance vs XDS100v2
The following data shows the relative performance of the XDS200 vs the XDS100v2. The data was gathered on PC running Windows 8-64 bit, CCS 5.3, 3Ghz dual core and USB-2.0. Your actual performance may vary.
Also, the XDS Performance comparison page contains some additional benchmarks and analysis with the XDS200 and comparing it to other JTAG debuggers.
- cio - A combination of printf, cio write and cio read
- load - 8MByte except on F28xx and Cortex-M4
- c step - Simple 500 c steps
- ARM92x - Configured for adaptive clocking. If XDS200 is not configured for adaptive clocking then performance will more then double for the load test.
- Cortex A8/A9 - AHB download enabled
- Cortex M4 - 256K Flash write