This app note applies to the old Universal Scan Download Cable which
has been obsoleted with version 6.0.
You shouldn't experience issues like these if you use the newer 3rd party cables (Xilinx, Altera, or Lattice)
It is important to understand that when you connect the Universal Scan cable, that you are literally adding a 6-foot antenna to your board. That can inject noise into your system, and it can interact with your JTAG circuit layout to create extra TCK pulses that mess everything up.
The best way to avoid all these issues is to treat the JTAG signals like you would any other test signal: buffer them as they enter/leave the board. Or, if that is not an option due to cost or space limitations, build a little buffer board that you can attach between the cable and the board.
If that is still too much, then you can usually get away with simply placing a resistor in series with the JTAG signals (or at the very least, TCK and TDO). Something around 220 ohms to 1K ohms will do for most situations. Also, try to make sure the TCK signal is not coupling with the other three. Twisting TCK and GND right at the end of the cable can make all the difference in the world.
Let’s look at some examples:
Here is a picture of a clean TCK and TDO signal:
.. and here is the cable configuration that generated it:
you can see, simply keeping TCK away from the other signals helps a lot.
Now, lets couple TCK and TDO and see what happens. We’ll do that by wrapping TCK and TDO around each other and separating them from the rest of the signals:
The effect on TCK is dramatic:
That was only about 3 or 4 inches of wire that we wrapped. That means you need to be real careful not to run TDO and TCK close to each other on your circuit board.
is the key. TMS and TDI are not a concern with Universal Scan since they
change well away from any TCK edge.
SIMPLE FIX: If we take the exact same example as above and simply insert a 220 ohm resistor in series with TCK only, right at the connector, the result looks like this:
same result is achieved by inserting a 220 ohm resistor in series with
the TDO signal by itself. For double protection, you should always do BOTH!
Here is an example of a 1K ohm resistor in series. Same net result, but TCK is starting to get stretched out:
If you use a resistor that is too large, TCK’s slope will become too stretched out and the chain will stop functioning again. Experiment with your circuit, to find the best value using the above as a guideline.
If you were to dissect the Universal Scan cable, you would find that TCK and TDO are kept as far apart as possible at all times down the full length of the cable.
Similarly, you should be careful to keep TDO and TCK separated at the JTAG header on your board.
1. Keep TCK & TDO separate at all times in your layout, including the JTAG header.