Install Code Composer Studio 4.x (XDS100 SW support is included) as per the table above before connecting XDS100 USB hardware. Connect the XDS100 hardware Make sure the Code Composer Studio 4.x is installed FIRST before plugging in the XDS100 HW to the PC. Fortunately, the USB JTAG Emulators should be a cinch, because Mac OS X does not require a literal driver to access a Custom Class USB Device. Either libusb or some custom C code to access the OSX USB API would be all that's needed, and the rest of Eclipse should run on the JVM.
This project will make use of a diagnostic interface on a common digital caliper to display the results to the PC. The CCS C-Aware IDE Compiler will utilize the Project Wizard tool to easily generate code for a USB interface to this existing product. Follow the simple steps below to create code quickly!
The most updated BGP Looking Glass database. MAC ADDRESS Vendor Lookup 00:00:00 XEROX CORPORATION MAC ADDRESS Vendor Lookup 00:00:01 XEROX CORPORATION. The CCS Download Manager automatically checks the CCS website and notifies you if there is a new version of the CCS C Compiler. If a new version is available, it downloads and installs to keep your compiler up-to-date.
Setting up
Notice that there are four pins on the interface of the digital caliper. First, a bit of effortless reverse engineering is needed to determine the data format, using a little scope probing it becomes clear that one pin is battery ground; one is the battery +3V; and the other two are used for data sending 24 bits every 110ms. The bit time is around 300us, however, every 4 bits there is an extra half millisecond gap. Here are three traces of the data at different scope zooms:
'Trace A' is clock and 'Trace C' is data. The results indicate the clock line goes low, then the data line changes, finally the clock rises and the data is assumed to be clocked in. This is known as 'SPI Mode Three'. A pecularity in the data is that the data line always returns high on each bit which may draw less current.
Interpreting the data when the caliper is at 0:
000000000000000000000001
000000000000000000000001
When at 0.1':
000100110000000000000001
000100110000000000000001
It seems the LSB (least significant bit) is sent first and the last bit is always 1. Some additional testing shows the 1 changes to 0 when the mode is switched to metric, and if distance goes negative, the last 4 bits are 1001. Flipping the bit order and showing the sign results 0.1':
+11001000 or in decimal +200
+11001000 or in decimal +200
The resolution of the data is then .0005' per increment.
Hardware Design
A simple hardware design starts with selecting an inexpensive device such as the PIC16F1459 for its built-in USB. The simple schematic is as follows:
An available analog input can read a measurement of battery voltage by connecting to the +3V.
The challenge in the hardware design is connecting to the caliper pins. The opening slot is 0.31' wide x 0.4' deep x 0.12' thick. A 0.062' PCB with contacts soldered on that compress to under 0.06' will work. The Digikey part number 1003-1010-1-ND contact works well. The example design PCB looks like this:
Note: Instead of using a custom PCB use any prototype board and solder wires directly to the caliper contacts. We recommend using a 'Tag Connect' programming socket on the PCB since this is has a small footprint and does not require a connector. For more information on 'Tag Connect' visit: http://www.ccsinfo.com/tagConnect
Project Wizard setup
One of the easiest ways to begin an USB application is through the Project Wizard. Begin by opening the CCS C-Aware IDE Compiler. Close all open files by selecting 'File' then 'Close All'. Next open up a new file through the Project Wizard by selecting 'File' then 'New' and 'Wizard'. The Wizard will then require a project name and location.
On the opening screen of the Wizard, select the device 'PIC16F1459' and the clock should be set to INTERNAL 48mhz with the 'Full USB' checked as indicated in Figure 1.
In the Left Margin, select 'USB' and check 'Enable the USB' as shown in Figure 2. The hardware design is powered by the USB at all times, so leave 'Connection Sense Pin' at 'None'. Also leave the VID/PID blank so it uses the CCS default VID/PID. Type in a device manufacturer and name. ('CCS' and 'CALHACK' shown as example only.) This will be the name that appears in the PC Device Manager.
There are different USB protocols for 'Device Class'. Select the first option 'Communication Device Class (CDC, Virtual COM port). This protocol is easiest to use and at the PC will make the USB port look like an RS232 COM port. 'Human Interface Device Class (HID)' interface is mainly used for devices like a mouse or keypad. For HID the data transfer rate is limited to 8 bytes per packet. 'Bulk USB' mode is commonly used for high speed devices, like a video camera, and requires custom Windows drivers to use.
The USB Project Wizard is complete. Before setting up the SPI, it is necessary to manage the voltage levels from the caliper. The highest level from the clock and data is about 1.5V; therefore, run them into comparators while using the comparator outputs to drive the SPI. The comparator can use an internal reference voltage called FVR as the trip point. Comparator setup is provided in Figure 3.
To set up the voltage reference (FVR), use the CCP/Vref page as shown in Figure 4.
Now, as shown in Figure 5, select SPI to set up the SPI port. Set the port count to 1 and then set the clock 'CLK pin' to C1OUT (comparator 1 output) and 'DI pin' C2OUT. In 'Settings', select to the 'Slave' option and set the 'Mode' to 3 with the number of 'Bits' as 24 and 'First bit' to LSB as described in Figure 5.
Now to setup the analog pins. In the left margin, select 'Analog'. The three pins used in the hardware design are battery voltage, and the two comparator inputs - marked C1, C2 & C3 as shown in Figure 6.
Next, setup to use the newer stream operators for character I/O. Select 'Header Files' in the left margin of the Wizard and check to include the definitions for IOS (ios.h) as shown in Figure 7.
Generating Code
The 'Project Wizard' is ready to generate code. Ensure the 'Create Project' button is clicked at the lower right. All the tedious work is done by the Wizard, and all that is left is to fill in some logic.
Read data like this:
data = spi_xfer(0);
The following code will output a minus sign if needed and then clear that bit in the data:
usb_cdc_putc << '-';
Outputing the number to a half-milimeter indication is easy:
if(data&1)
usb_cdc_putc << endl;
Outputing an endl adds a return/line feed to the end of line.
The caliper sends repeated data, so every data packet sent is not needed. Therefore, some code is needed to wait for the lull between packets before doing the spi_xfer(). This example waits for 8 samples 100us apart where C2OUT is idle.
if(!C2OUT)
else
Put it all together into the following main program. Note: All the setup code was inputed by 'Project Wizard'.
{
setup_adc_ports(sAN5|sAN6|sAN7);
setup_vref(VREF_ON | VREF_COMP_DAC_1v024);
setup_comparator(CP1_C2_FVR | CP1_INVERT | CP2_C3_FVR | CP2_INVERT);
while(TRUE)
if(usb_enumerated()) {
if(!C2OUT)
else
data = spi_xfer(0);
usb_cdc_putc << '-';
usb_cdc_putc << data / 2;
usb_cdc_putc << '.5';
}
}
Programming the board
Program the board by first connecting an ICD unit (the CCS ICD-U40 or ICD-U64 is recommended) to the PC. Then connect the new PCB to the ICD. In this demonstration a 'Tag Connect' cable was used.
Using the CCS C-Aware IDE Compiler, click 'Build & Run' from the main 'Compile' ribbon to compile the program and program our PIC16F1459 chip on our board. The chip should be programmed at this point and ready for us to test!
To test, disconnect the 'Tag Connect' cable, attach a USB Cable, then plug the PCB into the caliper. Upon connecting example USB board to the PC, it will want to find drivers. The correct drivers are identified by the VID/PID. If using the CCS default values, use the CCS supplied .INF files to teach Windows how to react to this device. The .INF files are found in a directory like this (depends on your installation):
C:Program FilesPICCExamplesNT,2000,XP,VISTA,7,8
In the IDE select 'Tools', 'Serial Port Monitor', and set the COM port to the newly created caliper port (CALHACK).
The USB Wizard generated code for the hard part..now you can apply the Wizard for your own USB application.
Hardware Information and References:
(link to Amazon)
CCS Calhack Example Board: Populated PCB with PIC16F1459, spring contact connections and micro USB jack.
Sku #53220-1544
$15 |
ICD-U64 In-Circuit Programmer/Debugger
Sku #53505-852
$29.95 |
Please note as of Wednesday, August 15th, 2018 this wiki has been set to read only. If you are a TI Employee and require Edit ability please contact x0211426 from the company directory.
Starting in v4.3, Processor SDK documentation is no longer hosted on processors wiki.
Please bookmark the new links:
Please bookmark the new links:
- Linux, RT-Linux: http://software-dl.ti.com/processor-sdk-linux/esd/docs/latest/linux/index.html
- RTOS: http://software-dl.ti.com/processor-sdk-rtos/esd/docs/latest/rtos/index.html
- Android: http://software-dl.ti.com/processor-sdk-android/esd/docs/latest/android/index.html
Usb Audio Driver For Mac
- 1What is the XDS100?
- 2XDS100 Installation Instructions
- 4Where to get an XDS100 / Where to buy an XDS100
- 5How to make an XDS100 / How to build an XDS100 hardware emulator
- 5.1XDS100v3 (only recommended for cJTAG based devices)
- 5.2XDS100v2 (Recommended)
- 5.3XDS100v1 (Legacy)
- 6Frequently Asked Questions (FAQ)
- 6.1General FAQ
- 6.2Installation FAQ
- 6.3Troubleshooting FAQ
- 6.4Hardware FAQ
What is the XDS100?
- The XDS100 emulator is Texas Instruments' ultra-low-cost USB-interface JTAG hardware reference design.
- The XDS100 emulator provides JTAG access to Texas Instruments' JTAG based devices.
- It is compatible with Code Composer Studio™ development environment.
- TI creates the reference design and our 3rd party partners create the JTAG emulator products for end use.
- The XDS100s are available as discrete emulators, or can be embedded on a development card (DSK, EVM, etc.).
- There are 3 versions of the XDS100. The XDS100v1 is the original XDS100 design. The XDS100v2 is an updated XDS100 design with more capability. The XDS100v3 is an updated XDS100v2 design with support for the 1149.7 protocol.
- Performance of the XDS100 is lower than the XDS510 and XDS560. This means that program and data downloads will take a longer time than with XDS510 and XDS560 emulators. Also, stepping in 'C' and 'Assembly' will be slower with XDS100 when compared to XDS510 or XDS560 emulators.
General Features
The Texas Instruments' reference design for XDS100 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)
- Compatible with Code Composer Studio™.
- 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
Which XDS100 is right for me?
- XDS100v1 emulators are only recommended for users who need to use Code Composer Studio v3.3, anyone using Code Composer Studio v4 or later should consider an XDS100v2 or later emulator due to the increased performance. Some of our 3rd Party partners have implemented XDS100v2 emulators that can also operate in v1 mode for compatibility with Code Composer Studio v3.3.
- XDS100v3 emulators are recommended for users who require support for IEEE 1149.7, most devices do not require this.
- XDS100v2 is the default recommended XDS100 emulator.
XDS100v1 Features
The Texas Instruments' reference design for XDS100v1 has the following features. Please check with your vendor as to whether the all of the below features are supported:
- All of the XDS100 General Features
- Support for USB Full Speed (12 Mbits/s)
- Support for multiple FTDI devices (CCSv4 only)
- Support targets with 14-pin TI JTAG connector used by Texas Instruments embedded processors.
- Support for the following processors cores: TMS320C28x, TMS320C54x, TMS320C55x, TMS320C64x+, TMS320C674x and TMS320C66x.
XDS100v2 Features
The Texas Instruments' reference design for XDS100v2 has the following features. Please check with your vendor as to whether the all of the below features are supported:
- All of the XDS100 General Features
- Support for USB High Speed (480 Mbit/s)
- Support targets with 14-pin TI JTAG connector or 20-pin TI JTAG connector as used by Texas Instruments embedded processors. (Please check your vendor for hardware details)
- Support for the following processor cores: TMS320C28x, TMS320C54x, TMS320C55x, TMS320C64x+, TMS320C674x, TMS320C66x, ARM 9, ARM Cortex cores: A (A8, A9 and A15), M (M0, M3 and M4) and R (R4 and R5). Support for the cores was incrementally added across the releases - check the release notes for the version you are using.
- Supports cable-break detection
- Supports target power loss detection
- Support for multiple FTDI devices
- Adaptive clocking
- LED light to indicate active USB connection
- Support for Code Composer Studio v4 and newer (Does not support Code Composer Studio v3.3)
- Note: As of 4/28/2010, the CPLD update was issued. Please see XDS100#Q:_How_can_I_update_the_CPLD_on_my_XDS100v2.3F
XDS100v3 Features
The Texas Instruments' reference design for XDS100v3 has the following features. Please check with your vendor as to whether the all of the below features are supported:
- All of the XDS100 General Features
- IEEE 1149.7 capable emulator with a USB interface.
- Can function as an 1149.7 adapter for use with existing scan controllers.
- Software compatible with XDS100v2 (except link delay and IEEE 1149.7 modes).
- Physical jumper to select emulator or adapter mode.
- Operates in 1149.7 Class 4, up to 25MHz.
- LED to indicate IEEE 1149.7 Class 4 operation.
- LED to indicate operation in adapter mode.
Features NOT supported
- It does not support Real Time Data eXchange (RTDX) or High Speed RTDX (HSRTDX)
- It does not provide hardware support for TCLKR external clocking
- Cores NOT supported: ARM 7, ARM 11, TMS320C24x, TMS320C55x+, TMS320C670x, TMS320C671x, TMS320C672x, TMS320C64x (note that TMS320C64x+ is supported) and other cores not listed as supported.
- It cannot read the value of the EMU0/1 pins, so long profiling operations that use the EMU0/1 pins to handle counter overflows will not be possible.
- JTAG Clock (TCLK) frequency other than default JTAG frequency (1Mhz)
XDS100 Installation Instructions
Installation for Code Composer Studio v6
All drivers are installed when XDS100 is selected during installation.
Installation for Code Composer Studio v5
For CCSv5.5 all drivers are installed when XDS100 is selected during installation. For CCSv5.1, 5.2, 5.3 and 5.4 make sure to check for updates in CCS and install the latest TI Emulation update if support for XDS100v3 is needed.
B. Connect the XDS100 hardware
- Make sure the Code Composer Studio 4.x is installed FIRST before plugging in the XDS100 HW to the PC.
- Connect USB cable from the PC to the XDS100 hardware. Connect the JTAG to the target board (be careful to plug it in correctly: pin 1 should go to pin 1. Red strip usually indicates the side of pin 1)
- You will notice small popups to inform user that USB hardware is recognized and installed correctly. No input are required.
C. Setup Code Composer Studio v4.x
- Start Code Composer Studio and create a new target configuration. See Quick Tips#Target_Setup.C2.A0
- Select XDS100 as connection type (either XDS100 v1 or XDS100 v2)
- Select device.
Installation for Code Composer Studio v3.3 (XDS100v1 Hardware Only)
Processor Family | XDS100 Hardware Version | Code Composer Studio Release/Version | Notes |
TMS320C28xx | v1 | CCS v3.3 Platinum Edition (TI part #: TMDSCCSALL-1) | Included with CCS Service Release 12 and newer. |
TMS320C28xx | v1 | CCS v3.3 for C2000 Full Version (version #3.3.78.2) (TI part #: TMDSCCS2000-1) | XDS100 SW required. Download here. |
TMS320C28xx | v1 | CCS v3.3 for C2000 DSK Version (version #3.3.81.28, 3.3.83.16 or newer) | XDS100 SW included in CCS Installation. No additional SW required. |
TMS320C674x | v1 | CCS v3.3 Platinum Edition (TI part #: TMDSCCSALL-1) | Included with CCS Service Release 12 and newer. |
Note: Code Composer Studio v3.3 ONLY supports XDS100v1 hardware emulator. XDS100v2 hardware is NOT supported on Code Composer Studio v3.3.
Note: Blackhawk has a model D version of XDS100v2 which can be configured to work as a v1 or v2 product. They provide a utility to re-program the device to act as a xds100v1, so the same product can be used with both CCS3.3 and CCS4. The firmware update utilities can be found on their Blackhawk XDS100 Support Page.
A. Install Code Composer Studio and XDS100 Software before connecting XDS100 USB hardware.
A. Install Code Composer Studio and XDS100 Software before connecting XDS100 USB hardware.
- Install the Code Composer Studio version, service release and/or XDS100 SW as detailed in the table below prior to connecting the XDS100 SW.
B. Connect the XDS100 hardware
- Make sure the XDS100 Software is installed FIRST per the table above before plugging in the XDS100 HW to the PC.
- Connect USB cable from the PC to the XDS100 hardware. Connect the JTAG to the target board (be careful to plug it in correctly: pin 1 should go to pin 1. Red strip usually indicates the side of pin 1)
- You will notice small popups to inform user that USB hardware is recognized and installed correctly. No input are required.
C. Setup Code Composer Studio v3.3
- Select CC Setup icon from the desktop.
- From the filters panel, select the platform 'xds100usb emulator'. This will give you a list of predefined configurations. Select the one appropriate for your device
- Save your configuration and exit CC Setup
- Start Code Composer Studio
- In Code Composer Studio, go Debug-->Connect. Note: 'connect to target' may take long time (>5 seconds) for the first time XDS100 USB is connected to target. It is not the case with subsequent 'connect' operations.
What are the known issues?
- XDS100 debuggers suffer a severe performance impact when using Virtual Machines (VMware, Virtualbox, Parallels, etc.) and Linux as a guest OS. Additional details are shown at this page.
- While loading a large program or program section, the file load status bar may appear frozen when it is not frozen. The status bar is showing section load start and completion.
- When a second FTDI device is plugged in (ex: FT232RL), and it receives a lower chain number, the XDS100 SW will address it instead of the FT2232 used by the XDS100. Solution: only plug the XDS100 HW into the PC. This has been fixed with Code Composer Studio v4 support for the XDS100v2 ONLY (XDS100v1 still has this issue).
- XDS100 SW Driver does not install properly under Windows Vista 64 bit using CCSv3.3
- If 'Option' under CCSv3.3 “connect to target at CCS startup” is enabled and c674x target board is connected, then the following error is reported when you try to 'Disconnect' for the 1st time. It works fine on 2nd attempt to disconnect. Note, this has been fixed for CCS v4.
- When selecting OMAPL137 configuration in CCS 4.0.2, the GEL files cause the connection to be hung. Remove the GEL file from the target configuration. This has been fixed in CCSv5.2 and newer.
- ETB for OMAPL137/8 is not working. Error of 'ETB definitions cannot be loaded. Device not supported.' is reported. ETB11 for OMAPL137/138 is not supported at this time. This has been fixed in CCSv5 and newer.
- When installating XDS100v2 patch via update manager, CCS says that the feature is not digitally signed. Continue installation. This has been fixed in CCSv5 releases.
- Target power loss detection is not working in CCS v4.1/v4.1.x. This has been fixed in CCS v4.2.
- Adaptive clocking use with OMAPL138/ARM9 cores connection reliability varies by card. This results in connection errors. A fix has been identified by upgrading the CPLD on XDS100v2 designs. Please see XDS100#Q:_How_can_I_update_the_CPLD_on_my_XDS100v2.3F
Troubleshooting
- Check whether the installation process was followed.
- Please check the FAQ questions below. (Troubleshooting FAQ)
- Please check the section regarding Troubleshooting CCS.
- Check your Windows System Devices. When properly installed, the XDS100 should look like the below image. If the XDS100 does not show up in the Windows device manager or shows with an error, then it is likely that the XDS100 was not programmed properly (contact manufacturer), there is a conflict with another FTDI based USB device (see FAQ below for details) or the drivers became corrupt (check the reinstall section above the screenshots)
- You can run the utility <xds100serial.exe> to find out which VID/PID are programmed in the device. This utility is typically located at the directory CCS_INSTALL_DIR/ccsv6/ccs_base/common/uscif
- Check USB cable or change the USB port the emulator is connected
- Power cycle your target
- You may want to check the VID/PID EEPROM was programed correctly
- Sometimes the use of different drivers such as libFTDI (used by OpenOCD, for example) or a simple corruption on other Windows .inf files may cause an improper initialization of the XDS100 device drivers. Please check this forum thread for details.
To reinstall the Windows device drivers:
- Right-click on node XDS100 Channel A
- Select Update Driver Software → Browse my computer for driver software
- Select Let me pick from a list of device drivers on my computer. If the drivers are already installed, the XDS100 Class Debug Port drivers will show. Select this one. Otherwise, repeat but skip this step.
- Click on Browse and select the directory C:ticcsv7ccs_baseemulationwindowsxds100_drivers
- Repeat for XDS100 Channel B
That should get you the same driver as installed by CCS.
If Windows refuses to update the driver, they need to be fully removed.
- Right-click on node XDS100 Channel A
- Select Uninstall..
- Check the box Delete the driver software for this device and click OK
- Repeat for XDS100 Channel B
- Do the procedure above to reinstall the drivers
Roadmap
- SW Update for improved performance.
- Lower cost design.
Where to get an XDS100 / Where to buy an XDS100
XDS100v3
- Spectrum Digital, Inc., offers an XDS100v3 USB CJTAG/JTAG Emulator here
- Olimex LTD, manufactures and sells a low-cost XDS100v3 here
- 00ic.com offers an XDS100v3 in china mainland with black plastic shell here
- Embest offers one here
XDS100v2
- Ashling's Opella-XDS100v2 is now available. Check it out here and buy here
- Blackhawk has one available (and our latest model supports both CCS v3.3 and v4., so no more deciding which model to buy)
- Olimex manufactures and sells an XDS100v2 debugger here
- Embest has one here
- Spectrum Digital, Inc., offers an XDS100v2 USB JTAG Emulator here
- TI Estore has a lifetime buy of the 20 pin compact TI version available.
XDS100v1
- Blackhawk offers a USB 2.0 HIGH-SPEED XDS100-class JTAG Emulator with dual headers (14 and 20cTI) here
- Olimex offers an XDS100 emulator here.
- Realtime offers an XDS100 emulator here.
- SeedDSP offers an XDS100 emulator here and here.
- C28x has the XDS100 is integrated onto the c28x Piccolo controlstick here and here.
- 5505 has the XDS100 integegrated onto the 5505 eZDSP USB stickhere
How to make an XDS100 / How to build an XDS100 hardware emulator
- You can make your own XDS100 by using the schematic and programming instructions below.
XDS100v3 (only recommended for cJTAG based devices)
Q: Where can I get the design / schematic / BOM for the XDS100v3?
- A: It is available from here
- The design files (schematic, gerbers, etc.) are provided. Scrambled FPGA VHDL is also included.
- Please read the included readme for details.
Q: What should the USB device's UID (VID/PID) be?
- A: The EEPROM needs to be programmed for a VID=0403 PID=A6D1. The device name string should be, “Texas Instruments Inc.XDS100 Ver 3.0”.
- A: FTDI has a utility called MProg. See here. To program the FTDI chip you will need a MPROG template file that can be downloaded from this link.
Q: I want to put an XDS100v3 on my EVM / DSK / card. Can I do this?
- A: Yes, but please make sure to re-use the entire XDS100 design as-is to ensure compatibility with the existing software!
XDS100v2 (Recommended)
Q: Where can I get the design / schematic / BOM for the XDS100v2?
- A: It is available from here
- The design files (schematic, gerbers, etc.) are drawn in the program KiCAD. PDF schematic is included. Bill of Materials (BOM) is included. MPROG script file is included. CPLD VHD and JED sources are included.
- Please read the included readme for details.
- Note as of 4/28/2010, the design package was updated with new CPLD source code. This is to fix the issues related to Adaptive Clocking on ARM9.
Q: What should the USB device's UID (VID/PID) be?
- A: The EEPROM needs to be programmed for a VID=0403 PID=A6D0. The device name string should be, “Texas Instruments Inc.XDS100 Ver 2.0”.
- A: FTDI has a utility called MProg. See here. To program the FTDI chip you will need a MPROG template file that can be downloaded from this link.
Q: XDS100-based C5505 and C5515 EzDSP USB Stick does connect when using 'Target Connect'
I get: 'Error connecting to the target: Error 0x80000240/-600 Fatal Error during: Initialization, OCS'
- A: This can happen if the FDTI USB driver have not been properly uninstalled / re-installed (i.e. if CCSv4 uninstall did not complete properly). I resolved it by going to Device Manager then right click on:
TI XDS100 Channel B -> Uninstall then TI XDS100 Channel A -> Uninstall Then it re-installed itself when re-connecting the XDS100-based USB stick and 'Target Connect' worked afetr re-starting CCSv4
Q: I want to put an XDS100v2 on my EVM / DSK / card. Can I do this?
- A: Yes, but please make sure to re-use the entire XDS100 design as-is to ensure compatibility with the software! Removing the CPLD implementing with discrete logic will result in a design that is just as complex and expensive as using the CPLD.
Q: Can I use port B as a UART?
- A: Yes. The TI XDS100v2 reference design uses the port A of the FTDI2232H to be for JTAG. This leaves the port B available for use either to program the CPLD and/or for use as a UART. The XDS100v2 design puts the CPLD JTAG programming on a selected number of pins (see XDS100v2 readme for details). This allows the CPLD to be programmed via the FTDI device, greatly simplifying manufacturing.
- Please note that there is a known issue with the current XDS100v2 reference design with the placement of the BCBUS. If you plan to use the port B, please check the readme of the XDS100v2 reference design for details. Generally, a serial port on BCBUS should connect the CPLD as follows: BCBUS1 -> CPLD TCK, BCBUS2 -> CPLD TDI, BCBUS5 -> CPLD TDO, BCBUS6 -> CPLD TMS.
- Please note that using UART mode simultaneously with Code Composer Studio v4 has NOT been tested on the XDS100v2 design and is not officially supported. Experience with C2000 ControlCards which implement this functionality indicate the FTDI driver can handle such an interaction. *The C2000 control card does implement a serial port simultaneous with JTAG, but it is done with an XDS100v1 design. There is a thread on the forum at [1]. The FTDI driver gives each half of the FTDI chip a seperate USB handle and USB endpoint, so they are essentially independent. The FTDI supplied software is the software that is needed to get this support; there is no TI specific software needed for this support.
Q: I see both 14 pin and 20 pin compact TI headers. Do I need both?
- A: Both are in the reference schematic for testing Code Composer Studio support. In the TI prototypes, we populate just one of the 2 headers. This allows use to test the extended capability available with the 20 pin connection. Please use the header that is needed for your target card.
XDS100v1 (Legacy)
Q: Where can I get the schematic for the XDS100v1?
- A: It is available from here
- A: The C2000 control card schematics implement an XDS100 design optimized for C28x processors. The design is available as part of their baseline SW packages. These can be downloaded here
Q: What should the USB device's UID (VID/PID) be?
- A: The EEPROM needs to be programmed for a VID=0403 PID=A6D0. The device name string should be, “Texas Instruments Inc.XDS100 Ver 1.0”.
- A: FTDI has a utility called MProg. See here. To program the FTDI chip you will need a MPROG template file that can be downloaded from this link.
- For 28x development cards, you may want to see this [| post]
Frequently Asked Questions (FAQ)
General FAQ
Q: Where can I find out more about Emulators which are compatible with TI devices?
- A: A general overview of TI emulation capabilities is here. For additional performance and capabilities, you may wish to review the XDS510 and XDS560 product lines which support TI devices.
Q: I would like to purchase a faster emulator, which one is recommended?
- A: TMS320C28x: The Spectrum Digital C2000 XDS510LC JTAG emulator is available, details may be found here. The Blackhawk C2000 USB controller (TI part #TMDSEMU2000U) is available from TI here.
- A: TMS320C674x: The Blackhawk XDS560 (TI part #TMDSEMU560U for USB and TI part #TMDSEMU560PCI for PCI) are available from TI here. The Spectrum Digital XDS510 (TI part #TMDSEMU510U for USB) is available from TI here.
Q: On the c28x, C674x, and C64x+ processor, does the XDS100 support Real-Time Mode?
- A: Yes. Learn more about Real-Time Mode.
Q: How to maximize performance of XDS100 under CCS?
A: A couple of things can be done to improve performance under CCS. Generally, the goal is to minimze the amount of information transferred for every action
- Make the disassembly window smaller or close the disassembly window. Stepping and general performance are better in the 'C' language environment if the disassembly window is closed.
- Minimize the number of registers shown.
- Minimize the number of watch windows/variable windows.
- Turn off mixed C/disassembly mode.
- Make sure you are plugged into a High Speed USB2.0 port (XDS100v2)
- Single step debugging is rather slow, therefore a better performance is obtained by running straight to specific points in your code by setting breakpoints in these locations.
Q: Does the XDS100 support debugging the C672x processor?
- A: No.
Q: Does the XDS100 support debugging the C24x processor?
- A: No.
Q: Does DSP/BIOS Real Time Analysis with RTDX work?
- Q: When using DSP/BIOS and the Real Time Analysis setup for RTDX, I get the cpu graph and real time logs updating. Does this mean RTDX is working/supported on the XDS100?
- A: RTDX is not supported on the XDS100. Please see the seciton What features does the XDS100 NOT support
Q: Can I use Advanced Event Triggering with XDS100?
- A: Yes.
Q: Can I plug more than one XDS100 (multiple XDS100) into a PC?
- With CCS v4.1 (with the XDS100v2 SW) and above you can plug more than one XDS100 on a single PC. This is not supported with CCSv3.3.
- Each XDS100 must have a unique serial number. Run xds100serial.exe installed under CCSv4.1 '<install_dir>/ccsv4/common/uscif/utility' to get the serial number of each connected XDS100 emulator. Create Target Configuration for 2 emulators, Under “connection properties”, change “emulator selection” to “select by serial number” option. Enter the corresponding serial number for each emulator. Save and launch debugger.
- With CCSv5, the xds100serial.exe utility is located in the folder '<install_dir>/ccsv5/ccs_base/common/uscif'
- With older versions of CCS (ex: CCS v3.3), there is a known issue (see above) which prevents the CCS XDS100 driver from seeing more than one XDS100 in a system. If more than one is in a system, only the first one is recognized.
- xds100serial.exe can detect both XDS100v1 and XDS100v2 emulators.
Q: Can I use the XDS100 with Stellaris Cortex M3 devices?
- A: Stellaris is supported with CCS v4.2.2 and newer. You may also want to look at: TI tools support for Cortex M3
Q: Can I use the XDS100v2 as JTAG simultaneously with the second port being a serial port (UART)?
- A: Please check for additional details in the XDS100v2 hardware design section. See XDS100#Q:_Can_I_use_port_B_as_a_UART.3F.
Q: How can I use the XDS100v2's second port as a serial port (UART)?
- A: Ensure that there is a physical connection between the FTDI Port B TX and RX pins and your target serial device and then follow these steps:
- Click Start, Right click on My Computer, and select Properties
- Navigate to the Hardware tab of the System Properties dialog box and select Device Manager
- In the list of devices, expand the group titled Universal Serial Bus controllers and look for a device named TI XDS100 Channel B
- Right click on this device and select Properties
- On the Advanced tab of this dialog box, ensure that the box labeled 'Load VCP' (virtual COM port) is checked. Click OK when you are done.
- Unplug and replug the XDS100v2
- After the XDS100V2 has been re-connected, look for a group called Ports (COM & LPT) in Device Manager. Expand this group and look for an entry labaled USB Serial Port (COMXXX).
- The COM number associated with this port is the one you want to use in Hyperterminal, PuTTy, or your favorite terminal application.
Q: How can I turn on adaptive clocking?
- A: You need to select the Adaptive Clocking option in the setup box (CCS v4.x).
- You can change the timeouts from the target as well. This is helpful if you get many timeout messages.
- Note that the XDS100v2 users should upgrade to the latest CPLD. An upgrade of the CPLD will improve reliability for adaptive clocking connections. To update the XDS100v2 CPLD, please see XDS100#Q:_How_can_I_update_the_CPLD_on_my_XDS100v2.3F
Q: My XDS100v2 does not work reliabily with the OMAPL138 / DM365 / ARM926 core
- A: This can be caused by a variety of issues such as where the PLL is programmed to the use of Adaptive Clocking emulator. Usually, it is seen as a problem around the PLL setup. This is because the core PLL clock is changing. Example error message:
A couple of things to try: Free odbc drivers for mac.
- Setup the PLL by executing code (ex: UBoot, etc.) instead of using the GEL file. (preferred)
- Turn on adaptive clocking XDS100#Q:_How_can_I_turn_on_adaptive_clocking.3F and setup the timeouts to very slow. In this mode, it is still better to 'run' the code and not 'step' it.
- Make sure you have the latest CPLD version. To update the XDS100v2 CPLD, please see XDS100#Q:_How_can_I_update_the_CPLD_on_my_XDS100v2.3F
Q: Can I use the XDS100 with OMAP-L138/C6748 EVM board?
- A: See How to connect to the OMAP-L138/C6748 EVM board using CCS?
- A: See also XDS100#Q:_My_XDS100v2_does_not_work_reliabily_with_the_OMAPL138_.2F_DM365_.2F_ARM926_core.
Q: Does XDS100 work with Window 7 64 bit?
- The current driver in XDS100v2 works with Windows 7 (64 bit).
Q: Can I use the XDS100 without CCS? Is there an API to access it's functions?
- Not at this time.
- We have some requests for an API to read/write targets, run/halt/step, load memory and handle STDIO. If you have requests, please post them in the support forum.
- If you need API for accessing CCS, without a GUI, you may want to consider Debug Server Scripting
Q: Can I use the XDS100v1/v2 with CC13xx/CC26xx SimpleLink ULP devices?
- A: No, only XDS100v3 supports the CC13xx/CC26xx device family. See CC13xx CC26xx Tools Overview for more details on debugger support for these devices.
Installation FAQ
Q: Where are the drivers for the hardware? Windows is asking for the drivers.
- A: Please see Installation instructions and troubleshooting section.
Q: What operating systems are supported?
- A: Please see System Requirements for Operating System support for CCS.
Q: I do not see my F28x Piccolo device listed in the CCS setup menu.
- A: You have an older version of the XDS100 SW/CCS. The F28x Piccolo device configuration files are included in the latest versions of the SW. Please see the installation notes above.
Q: What does the windows messages look like in Windows XP upon successful installation?
- A: See here. Note that after the first installation, there are no subsequent messages in Windows XP from the USB driver.
Q: I am using CCSv3.3 today. Can I get a driver to support XDS100 for my processor?
A: All new XDS100 development is being done on Code Composer Studio v4. Existing processors supported by XDS100 in CCSv3.3 will continue to be supported, but newer processors will not be added.
Google Usb Driver Mac
Q: Can I use Code Composer Studio v4 with XDS100?
A: There is a free license for Code Composer Studio v4 when used with XDS100. Code Composer Studio v4 can be downloaded from the Code Composer Studio v4 page. When you install CCS, you need to select the correct license. See below on how to select the correct license. This license is designed to be use with XDS100 only, and not XDS510 or XDS560 emulators. Please see Activating CCS#Generate_and_Install_a_License_File for details.
Troubleshooting FAQ
Q: Why is the download frozen?
- A: While loading a large program or program section, the file load status bar may appear frozen when it is not frozen. The status bar is showing section load start and completion.
Q: Windows is recognizing the XDS100 as 'Dual RS232 USB Serial Bridge' instead of the TI XDS100 JTAG emulator.
- Q: I have a C2000 Experimenter kits/Piccolo USB Stick that includes the onboard USB JTAG emulation, but the onboard USB JTAG emulation is being recognized by Windows as 'Dual RS232 USB Serial Bridge' instead of the TI XDS100 JTAG emulator.
- A: See this post on the forums.
- A: You may want to check XDS100#Q:_How_can_I_check_if_the_VID.2FPID_for_the_EEPROM_are_programmed_correctly.3F_if_your_VID.2FPID_are_programmed_correctly
Q: I used the FTClean utility on my computer and now I can't connect to the XDS100! What can I do?
- A: Running FTClean will remove the windows FTDI drivers for the XDS100. The TI XDS100 FTDI drivers were installed with the CCS installation or service patch. The XDS100 drivers are signed for the VID/PID combination. To recover, please re-install the CCS version/path you were last using before running FTClean which included the TI signed XDS100 drivers.
Q: My XDS560 stopped working when I installed the XDS100..
- A: Note that the XDS100 software is included and installed with CCS v3.3 SR12 or newer and/or CCSv4. For CCS v3.3 and SR12, it is recommended that users install the new Blackhawk XDS560 driver from Blackhawk website. There is no need to install a new Blackhawk driver with CCS v4.
Q: My JTAG is not working with CCS..
A: Please check: Debugging JTAG Connectivity Problems
Q: I see in my Windows Device Manager an error for a TI XDS560 emulator.
A: The XDS100 will not be affected by this. Please see XDS560#Q:_Why_does_my_Windows_Device_Manager_show_a_warning_for_the_TI_XDS560_PCI_Emulator.3F
Q: I see a Windows device manager problem with Texas Instruments XDS560 PCI JTAG emualtor. Does this affect the XDS100?
A: No. This error is caused by the Texas Instruments XDS560 PCI JTAG emulator not being installed. This service may be used by other XDS560 emulators. A proper setup in Windows device manager will look like the image in XDS100#Troubleshooting.
Q: Can I use an XDS100v2 hardware with a older version of Code Composer Studio? (Ex: CCS v3.3)
- A: No. The XDS100v2 will not work with older versions of Code Composer Studio that do not support the XDS100v2. Code Composer Studio v3.3 is not supported by the XDS100v2 hardware. For Code Composer Studio v4 users, please upgrade to the latest software versions as listed in the software installation section. If you use a XDS100v2 hardware unit with a version of CCS which does not support it, the software will just see a zero-bit scan chain. If you use DBGJTAG to test the JTAG scan path, it will look like the below, with a zero-bit scan path on both IR and DR.
Q: On connecting the USB, I get the error message 'The file FTDIBUS.SYS on FTDI USB Drivers Disk is needed'
- A: The USB drivers are likely missing. Please see the installation instructions above to install the software before trying to connect the XDS100.
- A: It may also be that the FTDI EEPROM is not properly progrmmed. Please contact your XDS100 vendor to have the problem corrected. You could also see the section on Xds100#How_to_make_an_XDS100 to program the EEPROM.
Q: I got a -150 SC_ERR_POD_FAIL error, what does this mean?
- For an XDS100, this means that Code Composer Studio is having a problem talking to the XDS100. The problem is with the communication between the adapter and the FTDI chip. Either the FTDI driver has returned an error, or the chip failed to return the expected number of bytes to Code Composer Studio. In practice, this has usually been found to be a problem with the FTDI drivers. Either the wrong drivers were installed, or there is a conflict with FTDI drivers used for another device, or a software process that hasn’t completely terminated and is holding the device open. In the case where a software process hasn't terminated, it may be that Code Composer Studio may not have terminated properly. Check the Windows Task Manager that Code Composer Studio related processes are terminated prior to re-starting.
Q: I got an 'Error connecting to the target: Error 0x80000240/-151 Fatal Error during: Initialization, OCS' when trying to connect to the target in Code Composer Studio v4
- A: This can occur for several reasons. With XDS100 systems, this can occur because the EEPROM was not programmed properly. Please check with your XDS100 manufacturer.
- A: More details on checking your EEPROM are XDS100#Q:_How_can_I_check_if_the_VID.2FPID_for_the_EEPROM_are_programmed_correctly.3F
Q: I was following Debugging JTAG Connectivity Problems and I a -151 SC_ERR_POD_OPEN error with Dbgjtag.
- A: This can occur for several reasons. With XDS100 systems, this can occur because the EEPROM was not programmed properly. Please check with your XDS100 manufacturer.
- A: More details on checking your EEPROM are XDS100#Q:_How_can_I_check_if_the_VID.2FPID_for_the_EEPROM_are_programmed_correctly.3F
Q: What happens when I plug a XDS100v2 in to my card but select XDS100v1 or XDS100 as the emulator?
- A: The output from a path length test will look like it is passing, with a zero - bit path length. This is because the XDS100v2 has a loopback mode which is used in testing. When the XDS100v1 software is used, it invokes this loopback mode.
- From Code Composer Studio, the error may look like an unrecoverable emulation error:
Q: What happens when I plug a XDS100v1 into a card but select an XDS100v2 in CCS?
- A: The output from path length test will vary with the target device. This is because the XDS100v2 uses the pins on the communications chip different from how it was used on the XDS100v1. On some devices such as c28x, it may cause the device to enter an unexpected bootmode. For the example with a 28x core, a 3-bit path length was seen vs a 38-bit path lengh (expected). This was because a bootmode was selected.
Q: I just upgraded to CCS 4.1.2 and now my XDS100 is not working. It was working before!
- A: Check your VID/PID value. If it does not match, you need to contact your manufacturer, or get the VID/PID EEPROM programmed properly.
- A: With CCS 4.1.2 and newer, a bug was fixed so that the XDS100 software could properly connect only to a XDS100 VID/PID values. In older versions of CCS, the XDS100 software would connect to any VID/PID value causing incompatibilties with non-XDS100 FTDI based devices plugged into the same PC.
Q: I was using CCS v3.3 SR12 before and upgraded to CCS 4.1.2 (or newer) and now my XDS100 is not working. It was working before!
Hardware FAQ
Q: Where can I find out about pinout of JTAG connectors?
- A: Please check the page on JTAG Connectors.
Q: What if I need electrical isolation?
- A: If you are working with a target which has high voltages, you may want to use an isolation adapter.
- There is an isolation adapter available here and a usb isolation adapter available in china mainland here
Q: What device voltages are supported by the XDS100v1?
- A: The XDS100v1 reference design supports 1.8V and 3.3V targets. The SN74CBT3125 (U3) and SN74LVC2T45 (U5) perform the voltage buffering. The MCP6041 (IC5) and TLC393 (IC1B) are used for voltage sensing. The 74HC74(IC3A) and TLC393 (IC1A) form the power detect circuit by reaching the TVO pin.
Q: I work with high voltages, where can I get an isolation adapter?
- A: TI offers an isolation adapter (TI part #: TMDSADP1414-ISO) here.
Q: Can I change the serial number on my XDS100v2?
- A: Yes, using the FTDI MProg utility and one of the configurations in Media:Xds100v2serial.zip so you can change the serial number of an XDS100v2 product if desired.
- NOTE: Support for MProg is being deprecated in favor of FT_Prog (also available on the same site). If you are having issue with MProg, try FT_Prog
- If you plan to use 1 or more XDS100v2 emulators in CCSv4 simultaneously then each XDS100v2 must have a unique serial number.
- For ease of use Spectrum Digital generally programs the XDS100v2 with a fixed serial number as this is the most common use case and is consistent with other low cost Spectrum Digital products.
Q: What frequencies are supported by XDS100v2? Can I change it?
- A: The default frequency is 1Mhz. Other frequencies can be selected, but they are not supported.
Q: On XDS100v1 design, what does the OE signal do? (pin 12 of FTDI)
- A: On the XDS100v1 design, this OE signal on pin 12 of the FTDI chip comes from the ICA3A device (74HC74, flip flop). The ICA3A/IC1A section of the circuit samples the TVD signal to detect whether there is target power. This signal is read by the debugger via the GPIO on the FTDI. This signal has an opposite signal /OE which goes to U3. U3 provides a buffer which performs the voltage translation.
Q: How can I check if the VID/PID for the EEPROM are programmed correctly?
- A: You can find the VID/PID in windows by using the windows device manager and selecting details. You can also use the FTDI utilities such as MPROG or FT_Prog. When using MPROG or FT_Prog, you need to scan devices to read the ID.
IMPORTANT! This is not applicable for BeagleBone Rev A5 and greater (which uses a XDS100). Check this FAQ entry.
- Expected XDS100 VID/PID should be as described in the sections how to make an XDS100
- A: If your hardware VID/PID does not match what is described in How to make an XDS100, please contact your hardware manufacturer.
Note:It is possible to reprogram the EEPROM using MPROG or FT_Prog and the .ept file. The .ept file depends on the type of device you have. If you have a FT2232C device download the following FT2232C EPT file. If you have a FT2232H device download the following FT2232H EPT file. Refer to the instructions in the How to make an XDS100 section
- A: For some 28x based cards, a similar problem may occur
Q: How do I reprogram the VID/PID EEPROM if it has not been programmed correctly?
- A If your VID/PID EEPROM has been programmed incorrectly, or not programmed at all, you can reprogram it with these simple steps
- Download and Install MPROG from FDTI. You can get MPROG 3.5 from here
- Download and extract the ept file from here
- Connect your XDS100 to the PC via the USB Cable
- Execute MProg.exe from within the directory structure where you installed MPROG. You should see a screen like the one pictured below.
- Select File->Open, and select the XDS100_wUART.ept file you extracted
- Select Device->Scan to verify that it will talk to your XDS100
- Select Device->Erase to erase the existing programming
- Select Device->Program to program the correct settings
- Close MPROG
You should now be able to follow the directions Here to verify that it has been programmed correctly. If it has, you should now be able to use your XDS100 with CCS.
Q: Does the XDS100v2 latch data on the rising or falling edge?
- A: Falling edge.
Q: How do I tell what the CPLD version is on my XDS100v2?
- A: Please contact your manufacturer. They may be able to tell from the manufacturing ID. There is no ID in the cpld code, so it cannot be determined by software.
Q: How can I update the CPLD on my XDS100v2?
- A: If your manufacturer built the XDS100v2 according to the reference design, you will be able to upgrade the XDS100v2 CPLD via SW. If your manufacturer did not follow the XDS100v2 reference design, please contact your manufacturer directly.
- As of 4/28/2010, an enhancment to improve reliability with devices which require Adaptive Clocking (ex: ARM9) is included with the updated CPLD. The specific items implemented in this CPLD update are:
- TCK loopback when a power loss is detected
- Fixed definitions of certain signals from 'inout' to 'output' (EMUs and TMS). T_SRST remains 'inout'.
- For XDS100v2 designs which have followed the TI reference design, the CPLD can be re-programmed through the USB by using the utility here. Usage instructions are included in the installation.
- Blackhawk has placed XDS100v1/v2 updates here. This includes the CPLD update as well as instructions for updating a Blackhawk v1 USB100 device to v2.
- Please note that this CPLD update is designed for use with CCS v4.1.1 and newer.
Q: How do I perform a system reset (SRST) using the XDS100v3?
A: There is an issue in the FPGA VHDL released in the XDS100v3 Design Kit v1.0 on 1 June 2011 which inadvertently disables this feature. It will be corrected in the next XDS100v3 Design Kit update.
Older Versions
XDS100 v1.0 RTM SW: It is recommended that users upgrade to the latest versions of the XDS100 SW. Please check the Software section above.Do NOT install this if you are using CCS v3.3 SR12 or newer, a CCS which came with your C2000 Control Stick, or CCSv4.
For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article XDS100 here. |
Links | |||
|
Retrieved from 'http://processors.wiki.ti.com/index.php?title=XDS100&oldid=236729'