Spectrum Digital Hardware Guide
This document provides useful information for hardware developers designing for TI DSPs using Spectrum Digital JTAG Emulators and DSP target boards.
Table of Contents
2. JTAG Emulator
3. Designing Your Own Hardware
1.1 Daughtercard Overview
Many Spectrum Digital products provide expansion connectors so developers can create their own custom hardware daughtercards. These connectors have their origin in the TI Cross Platform Daughtercard Specification (SPRA711) which defines a 32-bit asynchronous bus using 80-pin low-profile connectors from Samtec or AMP with 0.050 x 0.050 inch pin spacing. The recommended mating connector (part# TFM-140-32-S-D-LC) is a surface-mount connector that provides a 0.465" mated height. The original specification describes two connectors, one for memory/EMIF related signals and another for peripheral devices like McBSPs and timers. The memory connector is the most consistent across target boards.
Over time, the specification has loosely evolved to include additional connectors including a third connector typically used for HPI signals and advanced peripherals (McASPs) and a fourth connector for Utopia signals. These extra connectors were driven by necessity and are not based on any specific standard so you should not expect any level of compatibility across target boards.
1.2 Daughtercard Usage
In general, the signals on the daughtercard interface are connected directly to DSP pins. However, many of the pins on the memory connector are connected through 5V tolerant CBT switches to support both 3.3V and 5V I/O. These switches need to be turned on to make EMIF signals visible on the expansion connector. The convention is to ground the DC_DETECT pin (pin 75 on the peripheral expansion connector) to enable these buffers.
The X_RESET pin (pin 59 on the peripheral expansion connector) is used as a daughtercard reset. When power is applied to the DSK the X_RESET will be held low until the power supplies are stable and then driven high by the CPLD. For most daughtercards this provides the desired reset behavior. However, you can reset the daughtercard again in software by toggling the DC_RESET bit in the CPLD register. See the Technical Reference that came with your board to learn about other daughtercard control signals controlled by the on-board CPLD.
Every DSP that uses these connectors has a programmable bus interface which must be set up in software. If you are designing with the daughtercard memory connector, make sure that your software is setting the bus/EMIF up correctly.
1.3 Special Cases
Some boards are known to be different from the core standard. The DSK5402 and DSK5416 use C54xx DSPs with 16-bit memory busses. They use logic in the CPLD to generate 32-bit accesses, but the process is not code transparent. The EVM5509 (which also uses a DSP with a 16-bit bus) connects up to the daughtercard using a 16-bit only glueless interface and does not generate 32-bit accesses. The DM642 EVM visually looks similar to the standard interface, but uses three 90-pin connectors that have no relation to the original standard other than appearance. It is described separately in SPRA920.
The HPI connector is not standardized even though we try to make it similar when we can. Do not use it without checking the schematic for the board you're using it with to check compatibility.
2.1 Embedded Emulator
Many Spectrum Digital products include an on-board embedded USB or parallel port based JTAG emulator. This emulator allows full unrestricted debug of the board. On DSKs or eZdsp kits that ship with the DSK version of Code Composer, the embedded emulator is designed to only work with the special DSK version of Code Composer on that specific board. The intent to provide a full preview of TI's development tools with the kit.
When you design your own hardware, you must purchase an external JTAG emulator (USB, parallel port) to work with the full version of Code Composer Studio. One of the benefits of using an external Spectrum Digital external emulator when you design your own target is that you can expect similar behavior when you move from the DSK to your own target and eliminate some of the unknowns involved early during your hardware verification.
The embedded emulator exists solely for JTAG debugging purposes. The DSPs on the target boards cannot "see" the communication channel as a host. In other words, boards with an embedded USB emulator cannot use the USB JTAG port for generic USB prototyping.
2.2 External JTAG Emulators
An external JTAG Emulator(USB, parallel port) is required to support custom DSP designs to work with the full version of Code Composer Studio. One of the benefits of using an external Spectrum Digital external emulator when you design your own target is that you can expect similar behavior when moving the JTAG emulator from a Spectrum Digital DSK or EVM, to your own target, thus eliminate some of the unknowns involved early during your hardware verification.
2.3 Using multiple XDS510USBs on a single computer
Up to 4 XDS510USB JTAG Emulators may be used on 1 computer in a single Code Composer Studio or SDFlash environment. Each emulator will support connection to 1 JTAG Scan chain. Using the Code Composer Studio parallel debug manager, each emulator connection/scan chain can be viewed simultaneously in the CCS environment. Please read through the SD Technote: Using Multiple XDS510USB JTAG Emulators for additional details.
2.4 C6000 CCS 3.0 setup for Targets with more than 1 C6xxx DSP family in the same JTAG Scan Chain
Configuring CCS C6000 ver. 3.0 to support JTAG scan chain with multiple different C6xxx
devices in the same JTAG Scan chain. Example: 1 C6416 and 1 C6713 DSP in same Scan
Prior to CCS 3.0(2.4x), the sdgoheterogti.dvr was the driver used for heterogeneous configurations
(multiple c6xxx DSP families in 1 scan chain). The Sdgoheterogti.dvr is no longer
required for CCS 2.4 and higher. Instead, simply configure the targets in cc_setup pretty
much at will. Please also read the CCS docs about the new cc_setup as it is much different
than ccs 2.21.
Here is an example of how CCS may be setup:
JTAG Scan Chain:
CCS Setup will look something like the following:
Click Image to Enlarge
Basically, you will have to select a driver for each different CPU family you are using. You
will need: sdgo6400_11.dvr and sdgo6x.dvr. Make sure you configure each driver so that there
is a BYPASS to account for the other device in the scan chain. You may have to try different
combinations or different orders to get it right.
Designing your own hardware
3.1 Bringing your target up for the first time
When you design your own hardware, connecting to it with Code Composer is a major milestone. Here are some things to check if you cannot connect with Code Composer:
- Make sure all power supplies are at proper voltage.
- Make sure your clock is running and connected to the DSP on the right pin.
- Make sure RESET is being released properly.
- Most Spectrum Digital boards use an oscillator as a clock. If you are using a crystal instead of an oscillator, you may need to strap a pin to enable the crystal oscillation.
- Remember that the DSP will start executing code as soon as it is released from reset. Since you have nothing loaded at this point, it will be running garbage. Many DSPs can get into such a bad state when running garbage code that they cannot be attached to through CCStudio. Try releasing reset along with the "Retry" dialog that pops up when CCStudio figures out that it cannot connect with different relative timing to catch it in a better state.
- Try running the SDConfig emulator test to see if it can see the scan chain. This test requires fewer things to be working than a full CCStudio connection so it can verify that things are at least partially working.
- If SDConfig works but you still cannot connect with CCStudio, try your software setup with a Spectrum Digital target board for the same type of processor. A known working reference can save A LOT of time.