JTAG Chains in XJTAG

Some basic information about JTAG chains can be found here. More detailed information can be found on the XJTAG website.

Pin mappings

XJTAG's JTAG controllers allow the pin mapping to be configured to match the way they are physically connected to the UUT. Apart from hard-wired ground pins (the number of these depends on the type of JTAG controller being used), any other pin can be configured to be either one of the JTAG signal types, or a programmable I/O pin. This flexibility makes using XJTAG easy, especially if you are also using some other equipment such as a JTAG debugger which does not have configurable pin mapping.

More about pin mappings can be found here.

Test Reset Sequences

The nTRST pin is an optional signal in the JTAG TAP interface. Some devices do not always have their JTAG circuitry in a functional state, and the nTRST pin gives a way to enable JTAG on a device. The exact way in which this is to be done is not defined in the JTAG standards, and there is some variation between devices as to how to enable JTAG operation.

XJTAG will automatically run a Test Reset Sequence that will be sufficient to enable JTAG mode on many types of JTAG device, including most that use an nTRST pin, if an nTRST pin is specified in the pin mapping. For devices with more complex requirements, XJTAG allows you to create custom Test Reset Sequences. For example, specific pins on a JTAG device may need to be set high or low, or the Test Reset Sequence may use spare pins on the JTAG controller to switch on an external power supply and then wait for voltage levels to be established.

XJTAG applications use a graphical editor to edit Test Reset Sequences. The pins that are to be involved are added to the sequence and then XJTAG's tools allow a waveform diagram to be constructed which determines the state of each pin at each step. This editor is included in the JTAG Chain Debugger, XJAnalyser, XJInvestigator and XJDeveloper applications.

Multiple JTAG chains

XJTAG supports multiple JTAG chains. An XJLink can simultaneously operate its JTAG chains in parallel, connected to a UUT, and although the chains can work individually, their operations can also be synchronised to allow signals to be driven from one chain and read from another when required, and to prevent driving conflicting signals on the UUT.

JTAG chains are identified by their TDI/TDO pairs, i.e. TDI is paired with TDO, TDI2 with TDO2 etc.

When using multiple chains, the TMS and TCK pins can be used in different ways.

  1. The JTAG controller can have pins defined as TMS2, TMS3, etc., and TCK2, TCK3, etc. - chains which use different TMS/TCK signals do not have to be operated simultaneously (although they can be).
  2. TMS (or TMS2 etc.) and TCK (or TCK2 etc.) signals can be defined multiple times (on different pins) in the pin mapping, and thus associated with multiple TDI/TDO pairs. Chains defined like this will be clocked and operated simultaneously.
  3. The index number of the TAP (1 for TDI, 2 for TDI2, etc) needs to match up with the chain's TAP Index on the JTAG chain screen, so XJTAG knows which set of XJLink pins is connected to which chain of JTAG devices.

If multiple chains are being used, the user can configure which TMS, TCK and nTRST pins are associated with each TDI/TDO pair.

More details about setting up multiple chains can be found here under the entry for the type of JTAG controller you are using.

Supporting more JTAG chains

If you have more chains on your board than your JTAG controller can directly support, you can use a wiring harness to link JTAG chains in series providing that you adjust voltages if your chains do not all operate at the same voltage. This can be accomplished using level shifters or simply by using potential dividers to step voltages down, provided you connect the JTAG chains in order with decreasing voltage as you go along the chain.

Profiles

XJTAG has the concept of Profiles - for each test that is run, the selected profile determines which TAPs on the XJLink are involved. If your board has scan bridge devices it may also be possible to select which JTAG devices from a JTAG chain are included in the operating Subchain for the test.

Each group of tests in XJDeveloper/XJRunner has a profile associated with it, and a test can be added to the test list multiple times if it is required to run the same test in multiple profiles.

XJTAG calls the feature of changing the hardware configuration to change profiles Dynamic Chains.