XDS100 XDS100 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 StudioTM 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 capabilitiy. The XDS100v3 in an updated XDS100v2 design with support for the 1149.7 protocol and ARM Ltd's Single Wire Output (SWO). * 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 StudioTM. * 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 StudioTM 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 StudioTM is not running, and applying boot-modes at Code Composer StudioTM start-up. 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. 1 XDS100 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 R4, ARM Cortex A8, ARM Cortex A9 and Cortex M3 (requires CCSv4.2.2 or later). * 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. Support for ARM Ltd's Single Wire Output (SWO). 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. 2 XDS100 3 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 v5.1.x Code Composer Studio v5.1.x Support (XDS100v1, XDS100v2 and XDS100v3 hardware) Processor Family XDS100 Hardware Version Code Composer Studio Release/Version TMS320C28xx v1, v2, v3 Code Composer Studio v5 page newer TMS320C54xx v1, v2, v3 - as above - - as above - TMS320C55xx v1, v2, v3 - as above - - as above - TMS320C674x v1, v2, v3 - as above - - as above - TMS320C64x+ v1, v2, v3 - as above - - as above - TMS320C66x v1, v2, v3 - as above - - as above - ARM9 v2, v3 - as above - - as above - ARM Cortex A9 v2, v3 - as above - - as above - ARM Cortex A8 v2, v3 - as above - - as above - ARM Cortex M3/M4 v2, v3 - as above - - as above - ARM Cortex R4 v2, v3 - as above - - as above - [1] and Notes Additional SW patch required for XDS100v3 support A. Install Code Composer Studio 5.1.x (XDS100v1 and XDS100v2 support is included) as per the table above before connecting XDS100 USB hardware. B. Install the EmuPack with XDS100v3 support (to be released soon). C. Connect the XDS100 hardware 1. Make sure the Code Composer Studio 5.1.x and EmuPack with XDS100v3 support is installed FIRST before plugging in the XDS100 HW to the PC. 2. 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) 3. You will notice small popups to inform user that USB hardware is recognized and installed correctly. No input are required. D. Setup Code Composer Studio v5.1.x 1. Start Code Composer Studio and create a new target configuration. See Quick Tips#Target_Setup.C2.A0 2. Select XDS100 as connection type (either XDS100 v1, XDS100 v2 or XDS100v3) XDS100 4 3. Select device. Installation for Code Composer Studio v4.x Code Composer Studio v4.x Support (XDS100v1 and XDS100v2 hardware) Processor Family XDS100 Hardware Version Code Composer Studio Release/Version Notes TMS320C28xx v1, v2 Code Composer Studio v4.1 and newer No additional SW required for XDS100 support TMS320C54xx v1, v2 - as above - TMS320C55xx v1, v2 - as above - TMS320C674x v1, v2 - as above - TMS320C64x+ v1, v2 - as above - TMS320C66x v1, v2 - Code Composer Studio 4.2.2 and newer - ARM9 v2 - as above - ARM Cortex A9 v2 Code Composer Studio v4.2 and newer ARM Cortex A8 v2 - as above - ARM Cortex M3 v2 - as above - ARM Cortex R4 v2 - as above - A. Install Code Composer Studio 4.x (XDS100 SW support is included) as per the table above before connecting XDS100 USB hardware. B. Connect the XDS100 hardware 1. Make sure the Code Composer Studio 4.x is installed FIRST before plugging in the XDS100 HW to the PC. 2. 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) 3. 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 1. Start Code Composer Studio and create a new target configuration. See Quick Tips#Target_Setup.C2.A0 2. Select XDS100 as connection type (either XDS100 v1 or XDS100 v2) 3. Select device. Installation for Code Composer Studio v3.3 (XDS100v1 Hardware Only) Code Composer Studio v3.3 Support (XDS100v1 HW only) XDS100 5 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 [2] 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. [3] . 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. [4] A. Install Code Composer Studio and XDS100 Software before connecting XDS100 USB hardware. 1. 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 1. Make sure the XDS100 Software is installed FIRST per the table above before plugging in the XDS100 HW to the PC. 2. 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) 3. 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 1. Select CC Setup icon from the desktop. 2. 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 3. Save your configuration and exit CC Setup 4. Start Code Composer Studio 5. 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? * 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. * 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. XDS100 Error: Error 0xA0002020/-150 Error during: Execution, Control, This error was generated by TI's USCIF driver. SC_ERR_POD_FAIL <-150> This utility failed to operate the adapter for a custom emulator. The adapter returned an error for unknown reasons. * 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. * 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. * When installating XDS100v2 patch via update manager, CCS says that the feature is not digitally signed. Continue installation. * 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, then it is likely that the XDS100 was not programmed properly (contact manufacturer) or that there is a conflict with another FTDI based USB device (see FAQ below for details). * Check USB cable * Power cycle your target * You may want to check the VID/PID EEPROM was programed correctly 6 XDS100 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 [5] XDS100v2 * Ashling's Opella-XDS100v2 is now available. Check it out here [6] and buy here [7] * Blackhawk has one available [8] (and our latest model supports both CCS v3.3 and v4., so no more deciding which model to buy) * Embest has one here [9] * Spectrum Digital, Inc., offers an XDS100v2 USB JTAG Emulator here [10] * TI Estore has a 14 pin TI or a 20 pin compact TI version available [11]. 7 XDS100 XDS100v1 * Blackhawk offers a USB 2.0 HIGH-SPEED XDS100-class JTAG Emulator with dual headers (14 and 20cTI) here [12] * Olimex offers an XDS100 emulator here [13]. * Realtime offers an XDS100 emulator here [14]. * SeedDSP offers an XDS100 emulator here [15] and here [16]. * C28x has the XDS100 is integrated onto the c28x Piccolo controlstick here [17] and here [18]. * 5505 has the XDS100 integegrated onto the 5505 eZDSP USB stickhere [19] * ZLG (China) [20] * Bilkon [21] * Pantech Solution Pvt Ltd. [22] * Lierda has one (China) [23] 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 [24] (registration required). * 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 [25]. A sample MPROG file is included in the XDS100v2 design package. In order to program the XDS100, you'll need a .ept file. you can download it here 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 [26] (registration required). * 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. 8 XDS100 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 [25]. A sample MPROG file is included in the XDS100v2 design package. In order to program the XDS100, you'll need a .ept file. you can download it here 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 [27]. 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 [28] (registration required). * 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 [29] 9 XDS100 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 Version 1.0". Q: Ok, I built an XDS100, but how do I program the EEPROM for manufacturing? * A: FTDI has a utility for this called MProg. See here [25]. * A: For 28x development cards, you may want to see this [| post [30]] 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 [31]. 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 [32]. The Blackhawk C2000 USB controller (TI part #TMDSEMU2000U) is available from TI here [33]. * A: TMS320C674x: The Blackhawk XDS560 (TI part #TMDSEMU560U for USB and TI part #TMDSEMU560PCI for PCI) are available from TI here [34]. The Spectrum Digital XDS510 (TI part #TMDSEMU510U for USB) is available from TI here [35]. 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. 10 XDS100 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? * A: 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 "/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 "/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. 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: 1. Click Start, Right click on My Computer, and select Properties 2. Navigate to the Hardware tab of the System Properties dialog box and select Device Manager 3. In the list of devices, expand the group titled Universal Serial Bus controllers and look for a device named TI XDS100 Channel B 4. Right click on this device and select Properties 5. 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. 6. Unplug and replug the XDS100v2 7. 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). 11 XDS100 8. 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 12 XDS100 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: ARM9: GEL Output: Setup PLL0... ARM9: Trouble Writing Memory Block at 0x1c40900 on Page 0 of Length 0x4: 0x00000004/-2030 @ marker 1026 Error during: Register, Access to an unknown or invalid register was attempted. ARM9: GEL: Error while executing OnTargetConnect(): target access failed. A couple of things to try: 1. Setup the PLL by executing code (ex: UBoot, etc.) instead of using the GEL file. (preferred) 2. 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. 3. 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 13 XDS100 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 [36]. 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. 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. 14 XDS100 15 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 [30] 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_ 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. XDS100 C:\ccsv4\ccsv4\common\uscif>dbgjtag -f "C:\ccsv4\ccsv4\DebugServer\bin\win32\BrdDat\ccBoard0.dat" -rv -S pathlength -----[Print the reset-command software log-file]----------------------------- This utility will use the original port address '0'. The controller does not use a programmable FPGA. The emulator adapter uses the JIO interface. The emulator adapter is named 'jioserdesusb.dll'. The emulator adapter is version '35.34.0.7'. The controller has a version number of '4' (0x00000004). The controller has an insertion length of '0' (0x00000000). This utility will now 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 FTDI FT2232 with USB interface. The link from controller to target is direct (without cable). The software is configured for FTDI FT2232 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). This utility will use the original port address '0'. The emulator adapter uses the JIO interface. The emulator adapter is named 'jioserdesusb.dll'. The emulator adapter is version '35.34.0.7'. The controller has a version number of '4' (0x00000004). The controller has an insertion length of '0' (0x00000000). The local memory has a word capacity of '1048576' (0x00100000). -----[Perform the standard path-length test on the JTAG IR and DR]----------- This path-length test uses blocks of 512 32-bit words. The test for the JTAG IR instruction path-length succeeded. The JTAG IR instruction path-length is 0 bits. The test for the JTAG DR bypass path-length succeeded. The JTAG DR bypass path-length is 0 bits. 16 XDS100 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 17 XDS100 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. -----[Perform the standard path-length test on the JTAG IR and DR]----------This path-length test uses blocks of 512 32-bit words. The test for the JTAG IR instruction path-length succeeded. The JTAG IR instruction path-length is 0 bits. The test for the JTAG DR bypass path-length succeeded. The JTAG DR bypass path-length is 0 bits. * From Code Composer Studio, the error may look like an unrecoverable emulation error: Error connecting to the target: Error 0x00001200/-1135 Error during: OCS, Target, Unrecoverable emulation error 18 XDS100 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! * Please see previous topic 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 [37] 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 [37]. 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. * 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. Steps: 1) Launch MProg. 2) Load the desired configuration. For Fixed Serial Number: File->Open SDXDS100v2_FIXED.EPT For Autogenerated Serial Number: File->Open SDXDS100v2.EPT 3) Enable programming of pre-programmed devices if needed. 19 XDS100 File->Edit and uncheck "Only Program Blank Devices" 4) Program the ROM Device->Program 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 [38] 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 20 XDS100 * 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 1. 2. 3. 4. 5. 6. 7. 8. 9. Download and Install MPROG from FDTI. You can get MPROG 3.5 from here [39] 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. 21 XDS100 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: 1. TCK loopback when a power loss is detected 2. 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 [40]. Usage instructions are included in the installation. * Blackhawk has placed XDS100v1/v2 updates here [41]. 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 [42]: 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. essay writing [43] References [1] http:/ / processors. wiki. ti. com/ index. php/ Category:Code_Composer_Studio_v5 [2] http:/ / www. ti-estore. com/ Merchant2/ merchant. mvc?Screen=PROD& Product_Code=TMDSCCS2000-1 [3] http:/ / software-dl. ti. com/ dsps/ dsps_registered_sw/ sdo_ccstudio/ CCSv3/ Drivers/ XDS100_v1_1_RTM. exe [4] http:/ / www. blackhawk-dsp. com/ support/ xds100 [5] http:/ / www. spectrumdigital. com/ product_info. php?& products_id=251 [6] http:/ / ashling. com/ index. php?option=com_content& task=view& id=332 [7] http:/ / ashling. com/ index. php?option=com_content& task=view& id=129& Itemid=375 [8] http:/ / www. blackhawk-dsp. com/ products/ USB100. aspx [9] http:/ / www. timll. com/ chinese/ product/ XDS100. asp [10] http:/ / www. spectrumdigital. com/ product_info. php?cPath=22& products_id=230 [11] http:/ / focus. ti. com/ docs/ toolsw/ folders/ print/ xds100. html?DCMP=dsp_ccs_v4& HQS=Other+ OT+ xds100 [12] http:/ / www. blackhawk-dsp. com/ products/ usb100. aspx [13] http:/ / www. olimex. com/ dev/ tms320-jtag-usb. html [14] http:/ / www. realtimedsp. com. cn/ product/ detail. asp?ID=271 [15] http:/ / www. seeddsp. com/ news/ details. php?id=564 [16] http:/ / www. seeddsp. com/ pop/ 28027/ 28027. html 22 XDS100 [17] http:/ / focus. ti. com/ docs/ toolsw/ folders/ print/ tmdx28027usb. html [18] http:/ / focus. ti. com/ docs/ toolsw/ folders/ print/ tmdxdock28027. html [19] http:/ / focus. ti. com/ docs/ toolsw/ folders/ print/ tmdx5505ezdsp. html?DCMP=DSP_c5505usbstick& HQS=Other+ OT+ c5505ezdsp-prprod [20] http:/ / www. embedtools. com/ pro_kaifa/ dsp/ XDS100. asp [21] http:/ / bilkon-kontrol. com. tr/ index. php?/ eng/ Products/ Embedded-Systems/ XDS100 [22] http:/ / www. pantechsolutions. net/ UltraLowcostEmulator. html [23] http:/ / www. lierda. com/ product_show/ id/ 75/ display. html [24] http:/ / software-dl. ti. com/ dsps/ dsps_registered_sw/ sdo_ccstudio/ XDS/ xds100v3_v2. 0. zip [25] http:/ / www. ftdichip. com/ Resources/ Utilities. htm#MProg [26] http:/ / software-dl. ti. com/ dsps/ dsps_registered_sw/ sdo_ccstudio/ XDS/ XDS100v2Schematic(rev2)-Setup. zip [27] http:/ / e2e. ti. com/ forums/ p/ 7493/ 30331. aspx#30331 [28] http:/ / software-dl. ti. com/ dsps/ dsps_registered_sw/ sdo_ccstudio/ CCSv3/ Drivers/ setup_xds100_v1_0_schematic. exe [29] http:/ / focus. ti. com/ mcu/ docs/ mcuprodmsptoolsw. tsp?sectionId=95& tabId=1222& familyId=916& toolTypeId=1& DCMP=C2000_F28x& HQS=Other+ OT+ c2000tools [30] http:/ / e2e. ti. com/ support/ microcontrollers/ tms320c2000_32-bit_real-time_mcus/ f/ 172/ t/ 21086. aspx [31] http:/ / focus. ti. com/ dsp/ docs/ dspfindtoolswbytooltype. tsp?sectionId=3& tabId=2093& toolTypeId=12& familyId=44 [32] http:/ / focus. ti. com/ dsp/ docs/ thirdparty/ catalog/ devtoolsproductfolder. tsp?actionPerformed=productFolder& productId=2621 [33] http:/ / focus. ti. com/ dsp/ docs/ thirdparty/ catalog/ devtoolsproductfolder. tsp?actionPerformed=productFolder& productId=3158 [34] http:/ / focus. ti. com/ docs/ toolsw/ folders/ print/ xds560. html [35] http:/ / focus. ti. com/ docs/ toolsw/ folders/ print/ xds510. html [36] http:/ / software-dl. ti. com/ dsps/ dsps_public_sw/ sdo_ccstudio/ CCSv4/ Demos/ xds100installinxp. htm [37] http:/ / focus. ti. com/ docs/ toolsw/ folders/ print/ tmdsadp. html [38] http:/ / processors. wiki. ti. com/ index. php/ FAQ_-_CCSv5#Q:_I_can. 27t_connect_to_my_BeagleBone_in_CCSv5. _What_is_happening. 3F [39] http:/ / www. ftdichip. com/ Support/ Utilities/ MProg3. 5. zip [40] http:/ / support. spectrumdigital. com/ ccs40/ xds100v2/ [41] http:/ / www. blackhawk-dsp. com/ support/ xds100/ [42] https:/ / www-a. ti. com/ apps/ advisor/ xt_download. asp?sku=XDS100& download_file=XDS100_RTM_Release. exe [43] http:/ / custom-essay. ws/ index. php 23 Article Sources and Contributors Article Sources and Contributors XDS100 Source: http://processors.wiki.ti.com/index.php?oldid=123317 Contributors: A0272436, A0741207, Aarti Goyle, Anveshg, Aseely, Ashling, BradGriffis, D shail, DanRinkes, Ferrari, Icalzada, JNannes, Jeraldinesewell, Jlhunter, Joebahar, John, Lheustess, Mariana, Piternoize, Rsjsouza, SDIDAN, Shailesh, Steve, Tonycoomes, Y595906642 Image Sources, Licenses and Contributors Image:Xds100onxp-sysdevices.jpg Source: http://processors.wiki.ti.com/index.php?title=File:Xds100onxp-sysdevices.jpg License: unknown Contributors: Steve Image:Xds100v2 adaptiveb.jpg Source: http://processors.wiki.ti.com/index.php?title=File:Xds100v2_adaptiveb.jpg License: unknown Contributors: Steve Image:Xds100v2 dm365 timeout.jpg Source: http://processors.wiki.ti.com/index.php?title=File:Xds100v2_dm365_timeout.jpg License: unknown Contributors: Steve Image:CCSV4xds100license.jpg Source: http://processors.wiki.ti.com/index.php?title=File:CCSV4xds100license.jpg License: unknown Contributors: Steve Image:Xds100v1poderror.jpg Source: http://processors.wiki.ti.com/index.php?title=File:Xds100v1poderror.jpg License: unknown Contributors: Steve Image:Xds100v1nopiddbgjtagpodfail.jpg Source: http://processors.wiki.ti.com/index.php?title=File:Xds100v1nopiddbgjtagpodfail.jpg License: unknown Contributors: Steve Image:Xd100damagedvidpid.jpg Source: http://processors.wiki.ti.com/index.php?title=File:Xd100damagedvidpid.jpg License: unknown Contributors: Steve Image:Xds100findvidpiddevmgr.jpg Source: http://processors.wiki.ti.com/index.php?title=File:Xds100findvidpiddevmgr.jpg License: unknown Contributors: Steve Image:MPROG_3.5.jpg Source: http://processors.wiki.ti.com/index.php?title=File:MPROG_3.5.jpg License: unknown Contributors: DanRinkes License THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. License 1. Definitions a. b. c. d. e. f. g. h. i. j. k. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined below) for the purposes of this License. "Creative Commons Compatible License" means a license that is listed at http:/ / creativecommons. org/ compatiblelicenses that has been approved by Creative Commons as being essentially equivalent to this License, including, at a minimum, because that license: (i) contains terms that have the same purpose, meaning and effect as the License Elements of this License; and, (ii) explicitly permits the relicensing of adaptations of works made available under that license under this License or a Creative Commons jurisdiction license with the same License Elements as this License. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership. "License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. 2. Fair Dealing Rights Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. 3. License Grant Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: a. b. c. d. e. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified."; to Distribute and Publicly Perform the Work including as incorporated in Collections; and, to Distribute and Publicly Perform Adaptations. For the avoidance of doubt: i. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and, iii. Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License. The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved. ii. 4. Restrictions The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: a. b. c. d. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(c), as requested. You may Distribute or Publicly Perform an Adaptation only under the terms of: (i) this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible License. If you license the Adaptation under one of the licenses mentioned in (iv), you must comply with the terms of that license. If you license the Adaptation under the terms of any of the licenses mentioned in (i), (ii) or (iii) (the "Applicable License"), you must comply with the terms of the Applicable License generally and the following provisions: (I) You must include a copy of, or the URI for, the Applicable License with every copy of each Adaptation You Distribute or Publicly Perform; (II) You may not offer or impose any terms on the Adaptation that restrict the terms of the Applicable License or the ability of the recipient of the Adaptation to exercise the rights granted to that recipient under the terms of the Applicable License; (III) You must keep intact all notices that refer to the Applicable License and to the disclaimer of warranties with every copy of the Work as included in the Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or Publicly Perform the Adaptation, You may not impose any effective technological measures on the Adaptation that restrict the ability of a recipient of the Adaptation from You to exercise the rights granted to that recipient under the terms of the Applicable License. This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does not require the Collection apart from the Adaptation itself to be made subject to the terms of the Applicable License. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Ssection 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise. 24 License 25 5. Representations, Warranties and Disclaimer UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. 6. Limitation on Liability EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 7. Termination a. b. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. 8. Miscellaneous a. b. c. d. e. f. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.