Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Can all jtag programmable devices be connected to the same chain?

Status
Not open for further replies.

mystery

Full Member level 2
Joined
May 9, 2001
Messages
124
Helped
4
Reputation
8
Reaction score
2
Trophy points
1,298
Location
Turkey
Activity points
825
Can all jtag programmable devices be connected to a same chain?
For example Can i connect msp430 microcontroller and xilinx fpga to the same chain?
thanks
 

Jtag chains

Yes you can , you can have a single chain for a board or an Soc
 

Re: Jtag chains

JTAG is a device-independent protocol. It have been made to be daisy-chainable.

There are some basic set of instruction that is standard, and which all vendor have to apply to. The rest is vendor-specific, but the basic command set is the same, and one of the basic command is a BYPASS command. So, even if your software only know about one or 2 devices in the chain, it can put other devices in BYPASS mode. When in BYPASS mode, a device simply pass the bits through it as if the device was disconnected from the chain (invisible). The software can determine what devices are on the chain using another basic command, 'IDCODE', which return a 32-bit value for every devices on the chain.

To detect the devices, you:

1 - Send IDCODE command
2 - Shift 32 bits. While sending all-zeros or all-ones to TDI, you read 32 bits out of TDO.
3 - If the 32 bits result is all-zeros or all-ones, this meen no other devices are present. Else you found a device, with 32-bit ID as returned. Repeat step 2 until all devices are found.

Note that the first ID you get is the last device in the chain. The second ID is the next to the last device, ...

Almost every software on the market today also support multiple-device chains, and target only the device which it want to target on the chain.

To daisy-chain devices, you wire TCK, TMS and TRST (this signal is optional) to every chips, and you chain TDI/TDO signal. That is, you start from the JTAG connector TDI pin to the first chip TDI, then that chip TDO to the next chip TDI, and so on till the last chip TDO, which return to JTAG connector TDO pin.
 

Jtag chains

To add to what Big Boy has said, any JTAG software can put any JTAG compliant device into BYPASS mode..
But to do that , length of Instruction register of the particular device has to be provided..
It can be provided either manually or u can provide BSDL file of that device..
The software will read the length (and related parameters ) from the file..
 

Re: Jtag chains

tut said:
To add to what Big Boy has said, any JTAG software can put any JTAG compliant device into BYPASS mode..

Wrong. There are many programs that support only single-device mode of JTAG. Just because working with multiple-device chain requires implementation of many additional routines.

tut said:
But to do that , length of Instruction register of the particular device has to be provided..

Again wrong. After TAP reset all devices in JTAG chain comes to either BYPASS (if optional IDCODE register has not been implemented) or IDCODE mode. And because IDCODE register has last bit 1, and BYPASS register has 0, we can easy calculate the number of devices in the chain, and individual lengths of their IR. All these procedures are well-known (you can check for example source codes from SiLabs AppNote 105) and do not require any information about unnecessary devices in the JTAG chain.
 

Re: Jtag chains

I just want to add a few points regarding the physical implementation of the JTAG chain on the PCB. Even if you have only a single device on the board, or maybe many devices, a few simple errors on the layout and routing of PCB can leave the JTAG chain unusable.
So what do you do?

I tend to always perform the JTAG chain routing early on and also do it manually. I also setup the chain to suite the board layout/placement of the devices on the PCB.

There is also a few other tricks/methods to ensure proper operation of the chain. I don't want to waste the time of the forum so if you would like me to expands on these, please let me know.
 

Jtag chains

ohh!! but i experienced the same when i tried programming a board consisting of Xilinx devices and some JTAG compliant asics.
The ISE (IMPACT) software kept asking about the length of Instruction register/BSDL files of the asics..
any JTAG software can put any JTAG compliant device into BYPASS mode
But i guess, i was wrong in generalising all the JTAG Software..
Maybe Xilinx ISE does it that way..
 

Re: Jtag chains

What about order in connecting devices, do I have to connect them in order?
I mean FPGA-> PROM, PROM-> FPGA, or it does not matter?
 

Jtag chains

The order should not matter. Be sure to tell your download software what order you used.

If the devices have different interface voltages, you may need level translators, so one order may be easier than another order.
 

Re: Jtag chains

check the Mitoutag project .do a search on edaboard i uploaded a copy
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top