Looking for JTAG Cable? Learn about JTAG interface, wigglers, programmers and JTAG software. JTAG cable is a simple cable that connects one control device (usually computer) with JTAG port on the target board or device.

JTAG cables usually have some interface or at least buffer to amplify signals. All JTAG cables have TDI, TDO, TCK, TMS and TRST signal. These are part of the IEEE 1149 standard. However, there is no standard for cable headers. Each family of devices might have different JTAG pinout. JTAG cables can be pretty simple, few wires connected to the parallel port. A better JTAG cable has USB interface. For each JTAG table there must be some JTAG software that supports this cable. There is no universal solution, although many popular JTAG software applications support common JTAG cables used.JTAG is also widely used for FPGA programming. Each FPGA board has some JTAG interface which is used to program the FPGA. There are three very popular FPGA programmers: the Altera Byte Blaster (which has USB interface), Xilinx USB JTAG programmer and the old Xilinx JTAG programming cable for parallel port.There is also one popular JTAG cable called Wiggler which is a parallel port interface for either JTAG or BDM debugging. The wiggler is simple and cheap interface used to debug and program embedded systems. One side of the Wiggler connects to the PC parallel port and the other side connects to an On-Chip Debug port of the target device. This OCD port may be either JTAG, E-JTAG, OnCE, COP, BDM, or any of several other types of connections.

Introduction

One of the difficult areas in the development of any modern hardware system is the production-testing of the Printed Circuit Boards (PCBs). This is the problem addressed by the IEEE standard number 1149 "Standard Test Access Port and Boundary-Scan Architecture". JTAG (Joint Test Action Group) is the common name used for the IEEE 1149.1 standard for test access ports used for testing printed circuit boards using boundary scan. It is also often used as an IC debug or probing port. This standards defines a 5-pin serial protocol for accessing and controlling the signal-levels on the pins of a digital circuit, and has some extensions for testing the internal circuitry on the chip itself. The standard was written by the Joint Test Action Group (JTAG) and the architecture defined by it is known as "JTAG boundary scan" or as "IEEE 1149".

A JTAG interface is a special four/five-pin interface added to a chip, designed so that multiple chips on a board can have their JTAG lines daisy-chained together if specific conditions are met, and a test probe need only connect to a single "JTAG port" to have access to all chips on a circuit board. The JTAG interface uses the following five dedicated signals which must be provided on each chip that supports the standard:

  1. TDI (Test Data In)
  2. TDO (Test Data Out)
  3. TCK (Test Clock)
  4. TMS (Test Mode Select)
  5. TRST (Test Reset) optional.

These signals should be present on all JTAG cables, regardles of the pinout, header or PC interface. Although it was originally designed for testing printed circuit board assemblies, today JTAG is also used for accessing sub-blocks of integrated circuits, making it a useful mechanism for debugging embedded systems, providing a convenient "back door" into the system. On most systems, JTAG-based debugging is available from the very first instruction after CPU reset. A so-called in-circuit emulator (or more correctly, "JTAG adapter") uses JTAG as the transport mechanism to access on-chip debug modules inside the target CPU. Those modules let software developers debug the software of an embedded system directly at the machine instruction level when needed, or (more typically) in terms of high level language source code.

Besides debugging, another purpose of the JTAG interface is allowing device programmer hardware to transfer data into internal non-volatile device memory (CPLDs). Some device programmers serve a double purpose for programming as well as debugging the device. In the case of FPGAs, volatile memory devices, they can also be programmed via the JTAG port normally during development work. In addition, newer parts, for instance Xilinx Virtex-5, have internal monitoring capability (temperature, voltage and current) accessible via the JTAG port. JTAG programmers are also used to write software and data into flash memory. This is usually done using data bus access like the CPU would use, and is sometimes actually handled by a CPU, but in other cases memory chips have JTAG interfaces themselves.

Widespread uses of JTAG interface

  • A large proportion of embedded systems development platforms have a JTAG port to support in-circuit debugging and firmware programming. Unfortunately there is no standard for header or unified JTAG cable.
    • ARM Architecture processors come with JTAG support, sometimes supporting a two-wire "SWD" variant or high speed tracing of traffic on instruction or data buses.
    • Modern 8-bit and 16-bit Microcontroller chips, such as Atmel AVR and TI MSP430 chips, support JTAG programming and debugging. However, the very smallest chips may not have enough pins to spare (and thus tend to rely on proprietary single-wire programming interfaces).
    • Almost all FPGA and CPLD devices used today can be programmed via the JTAG port.
  • The PCI bus connector standard contains optional JTAG signals on pins 1-5; PCI-Express contains JTAG signals on pins 5-9. A special JTAG card can be used to reflash a corrupt BIOS.
  • Boundary scanning and programming applications are sometimes programed using the Serial Vector Format, a textual representation of JTAG operations. FPGA programming tools from Xilinx and some other vendors can save such files.
  • Many boards include JTAG connectors, or just pads, to support manufacturing operations, where boundary scan testing helps verify board quality (identifying bad solder joints, etc) and to initialize flash memory or FPGAs.
  • JTAG can also support field updates and troubleshooting.

JTAG Cables

There are several different types of cables that are popular for hooking up to JTAG headers inside consumer electronic equipment. Most of these rely on a regular PC's parallel port to drive the JTAG signal lines. There are vendors of commercial JTAG cables that sell them at extravagant prices. For the home user or hobbyist, however, a better choice is usually to construct a cable at home from commonly available parts. Whereas an unbuffered JTAG cable can be constructed for maybe $5 USD or less, the parts for a buffered JTAG Cable will cost a little more, perhaps in the $15 to $30 USD range.