<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>XJTAG Blog &#187; Connection Test</title>
	<atom:link href="http://blog.xjtag.com/category/connection-test/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.xjtag.com</link>
	<description>XJTAG boundary scan solutions for the whole product lifecycle</description>
	<lastBuildDate>Wed, 26 May 2010 07:10:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Debugging Connection Test &#8211; part 3</title>
		<link>http://blog.xjtag.com/2009/08/debugging-connection-test-part-3/</link>
		<comments>http://blog.xjtag.com/2009/08/debugging-connection-test-part-3/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 07:00:53 +0000</pubDate>
		<dc:creator>Bob Storey</dc:creator>
				<category><![CDATA[Connection Test]]></category>

		<guid isPermaLink="false">http://blog.xjtag.com/?p=137</guid>
		<description><![CDATA[Solving common Connection Test problems
There are several types of error found by Connection Test which
regularly (and unsurprisingly) confuse users. This article tries to help out&#8230;

Mis-categorised Resistors
Mis-categorising a resistor is probably the most common mistake we see
in circuit set-up. It can cause problems whichever way it&#8217;s done.

If a pull resistor is incorrectly marked as a &#8220;Connect&#8221; [...]]]></description>
			<content:encoded><![CDATA[<h2>Solving common Connection Test problems</h2>
<p>There are several types of error found by Connection Test which<br />
regularly (and unsurprisingly) confuse users. This article tries to help out&#8230;</p>
<p><span id="more-137"></span></p>
<h3>Mis-categorised Resistors</h3>
<p>Mis-categorising a resistor is probably the most common mistake we see<br />
in circuit set-up. It can cause problems whichever way it&#8217;s done.</p>
<ul>
<li>If a pull resistor is incorrectly marked as a &#8220;Connect&#8221; resistor<br />
then XJTAG will assume that both sides of the resistor are<br />
power/ground nets rather than just one side. It may be that another<br />
device on the net then toggles it, causing XJTAG to think the power<br />
pin is open-circuit. Or alternatively XJTAG doesn&#8217;t test a net that it<br />
could.</li>
<li>If a low-impedance connection is marked as a pull<br />
resistor, XJTAG will try to drive the net at some point during the<br />
connection test. This can cause &#8220;stuck-at&#8221; errors or may cause the<br />
power supply to hit its current limit and cause a voltage dip deep<br />
enough to break the JTAG chain.</li>
<li>If a pull resistor impedance is too high, it may not work<br />
properly, or if it does, it may take too long for the voltage to<br />
return to the correct state, causing XJTAG to take a reading before<br />
it has done so and causing the connection test to fail.</li>
</ul>
<h3>Configured devices</h3>
<p>This happens with both CPLD and FPGA devices. Many programmable<br />
devices can have their pins re-defined, to reduce their<br />
capability. For example the BSDL file may say the pin has both read<br />
and write capabilities, but the configuration applied may make it<br />
write-only. XJTAG will try to read from the pin unaware that it is<br />
disabled, and generally always read the same value. Pre-configured<br />
devices generally result in a number of stuck-at errors being<br />
reported.</p>
<p>We see this most often with FPGAs, where they download an image from a<br />
PROM at power-up or even where they receive an image from a CPU as the<br />
board boots, before it gets put into JTAG mode. Clearing the relevant<br />
EEPROMs before testing and programming them afterwards is one<br />
solution, or you can use the manufacturer&#8217;s tools to create a STAPL or<br />
SVF file to clear the device and get XJTAG to run this before it<br />
performs the Connection Test. Or perhaps better yet, bring the Mode<br />
pins for the device(s) to a connector so that they can be put into JTAG<br />
config mode.</p>
<h3>Non-JTAG devices driving the net</h3>
<p>We frequently see errors caused by non-JTAG devices driving the<br />
net. This is in turn caused by the user not setting disable values<br />
correctly. A typical example of this would be errors on a memory or<br />
flash device&#8217;s data bus. During the connection test the device has to<br />
be set not to drive the bus or it will conflict with XJTAG writing to<br />
it. Typically this is done by setting an appropriate disable value on<br />
the device&#8217;s chip select or output enable pin(s).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xjtag.com/2009/08/debugging-connection-test-part-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debugging Connection Test &#8211; part 2</title>
		<link>http://blog.xjtag.com/2009/08/debugging-connection-test-part-2/</link>
		<comments>http://blog.xjtag.com/2009/08/debugging-connection-test-part-2/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 07:00:51 +0000</pubDate>
		<dc:creator>Bob Storey</dc:creator>
				<category><![CDATA[Connection Test]]></category>

		<guid isPermaLink="false">http://blog.xjtag.com/?p=106</guid>
		<description><![CDATA[Understanding the connection test output
When Connection Test finds an error on a board it tries to ascertain what the problem is. This may involve carrying out additional checks, to try to eliminate noise on a floating net or cross-talk as a cause of the behaviour. If the fault appears to be genuine then the Connection [...]]]></description>
			<content:encoded><![CDATA[<h2>Understanding the connection test output</h2>
<p>When Connection Test finds an error on a board it tries to ascertain what the problem is. This may involve carrying out additional checks, to try to eliminate noise on a floating net or cross-talk as a cause of the behaviour. If the fault appears to be genuine then the Connection Test reports the error.</p>
<p><span id="more-106"></span>On seeing a fault, most people&#8217;s first reaction is to want more information. So the first step for most people is to re-run the connection test with the debug level turned up, in order to see the output.<br />
To do this, on the Run Tests screen in XJDeveloper or the main screen in XJRunner, look at the list of tests on the right (in XJRunner you need the &#8216;enhanced testing&#8217; privilege to see this). At the bottom, there is a button marked &quot;Options&#8230;&quot;. Click on this to see a pop-up with various<br />
options. The last tab of those options is marked &#8216;Connection Test&#8217; and allows you to vary the output level. Set that debug level to &quot;All&quot;. Now re-run the connection test. Now it will show you a large amount of data for each fault.</p>
<p>For example (taken from the XJDemo board):<br />
<span style="color: red;"><br />
<code><br />
Error: Short found between nets: DIL10, DIL11.</code></span></p>
<pre><span style="color: red;">Net DIL10 contains:
R39.2
JP6.20
CN3.11
IC3.18(IO18)
IC5.24

Net DIL11 contains:
CN3.12
R40.2
JP6.18
IC3.19(IO19)
IC5.25

      DIL10	 DIL11
      W     R    W     R
0     -     0    -     0
1     -     0    -     0
2     -     0    -     0
3     -     0    -     0
4     0     0    0     0
5     1     1    1     1
6     0     0    0     0
7     1     1    1     1
8     0     0    -     0    *
9     1     1    -     1    *
10    0     0    -     0    *
11    1     1    -     1    *
12    0     0    0     0
13    1     1    1     1
14    0     0    0     0
15    1     1    1     1
16    0     0    0     0
17    1     1    1     1
18    0     0    0     0
19    1     1    1     1
20    -     0    0     0    *
21    -     1    1     1    *
22    -     0    0     0    *
23    -     1    1     1    *
24    -     0    -     0
25    -     0    -     0
26    -     0    -     0
27    -     0    -     0
28    0     0    0     0
29    1     1    1     1
30    0     0    0     0
31    1     1    1     1
32    -     0    -     0
33    -     0    -     0
</span></pre>
<p><span style="color: red;"> </span></p>
<p>The first bit is easily understandable &#8211; XJTAG thinks there is a short between the two nets listed. The pins on each net are then listed because often looking at the lists of pins on the two nets will show that some adjacent pins are involved, which raises suspicions of a solder short  between pads on the board. You can also see if any test points or components such as resistors are on the nets should you wish to confirm the fault with a probe or multimeter.</p>
<p>Underneath that is the data.<br />
This is the write (W) and read (R) information XJTAG has stored during the test. Depending on the type of fault this may be the value read on a net or value from an individual pin. For example with an open on the net it will display pins information, to let you see which pin doesn&#8217;t follow the rest of the net. In this case, because the error is a short circuit, the data is for nets. Down the left hand side are test numbers, and then the read and write values for each of the nets.</p>
<h3>Marked tests (*)</h3>
<p>For certain types of fault XJTAG marks (in groups of 4) tests where it considers the error to manifest itself by putting a * character to the right. For some faults it does not make sense to do this (stuck-at faults would be pretty boring) but where it is relevant the *s are shown.<br />
In the above example, each set of *s shows a place where one of the nets is not being driven, yet it is picking up the value of the other net.</p>
<h3>Undetermined faults</h3>
<p>There are two error messages which indicate that XJTAG found something wrong but that it is unable to diagnose what the problem is. These error messages look like:</p>
<pre><span style="color: #ff0000;">Error on net XXX: Undetermined error (possible open pin)</span></pre>
<p>or</p>
<pre><span style="color: #ff0000;">Error on net XXX: Either it is shorted to another net
or a non-JTAG pin is also driving the net.
 </span></pre>
<p>Sometimes these errors occur because the circuit is more complicated than XJTAG has been told (eg logic devices or buffers (uni-directional devices) have been represented as simple connections) or because there are multiple interacting errors on the board which make it difficult to determine each one individually. Unfortunately XJTAG is going to have to pass the investigation of this one over to you. A good place to start is by checking whether this net can be driven by anything<br />
else, and if so, whether that device has its disable values set correctly to prevent it driving the net during the connection test. XJAnalyser (if you have the licence) is also an extremely useful<br />
way to investigate this kind of fault further.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xjtag.com/2009/08/debugging-connection-test-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debugging Connection Test (Part 1)</title>
		<link>http://blog.xjtag.com/2009/06/debugging-connection-test-part-1/</link>
		<comments>http://blog.xjtag.com/2009/06/debugging-connection-test-part-1/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 12:00:08 +0000</pubDate>
		<dc:creator>Bob Storey</dc:creator>
				<category><![CDATA[Connection Test]]></category>
		<category><![CDATA[XJDeveloper]]></category>

		<guid isPermaLink="false">http://blog.webtest.ctg.local/?p=5</guid>
		<description><![CDATA[This post describes debugging the Connection Test from XJDeveloper.
The XJTAG connection test is an automated interconnect test which checks for shorts, opens, stuck high and stuck low errors on a circuit board. Some circuit boards have cross-talk or similar issues, which do not affect the normal running of the board, but are picked up by [...]]]></description>
			<content:encoded><![CDATA[<p>This post describes debugging the Connection Test from XJDeveloper.</p>
<p>The XJTAG connection test is an automated interconnect test which checks for shorts, opens, stuck high and stuck low errors on a circuit board. Some circuit boards have cross-talk or similar issues, which do not affect the normal running of the board, but are picked up by the XJTAG connection test.</p>
<p><span id="more-5"></span>The Connection Test screen is in the Run and Deploy section of XJDeveloper. It adjusts how the XJTAG connection test runs. If the connection test works for your circuit, it&#8217;s probably best to just leave that screen on its default setting, with the &#8220;Configure Connection Test&#8221; checkbox left unchecked.</p>
<h3>“My Connection Test Fails!”</h3>
<p>There are two distinct types of way in which the connection test can fail.</p>
<ol>
<li>The connection test finds fault(s) with your circuit, and prints a message saying the type of fault it found and the net(s) it found the fault on.</li>
<li>During the test, the JTAG chain stops working. This causes the connection test to fail, typically producing a large amount of output with a &#8220;The JTAG chain appears to be broken&#8221; message at the end of it.</li>
</ol>
<p>Type (1) is the sort of failure normally associated with a fault on the board which needs investigating. How to go about this, and how to deal with suspected false failures will be the subject of a future blog post.</p>
<p>Although type (2) could be caused by this, it is more normally seen during set-up and implies that the XJTAG system doesn&#8217;t know something it needs to. This would typically be :</p>
<ul>
<li>a) A missing &#8220;disable value&#8221; &#8211; typically something like a reset pin which XJTAG needs to be told to hold at a constant value to avoid resetting the board</li>
<li>b) a watchdog chip that hasn&#8217;t been disabled</li>
<li>c) XJTAG causing something to draw a current which causes a voltage drop, which in turn stops the JTAG chain operating. This may be caused by a power supply with a limit set a bit low, or may be due to XJTAG not being told of a connection or required constant value pin.</li>
</ul>
<h3>Fixing a ‘broken chain’</h3>
<p>To track down these types of problems, turn on &#8220;Configure Connection Test&#8221; and set the Connection Test Type to &#8220;Debug Errors&#8221;. The next stage is to find out exactly what breaks the chain, and it&#8217;s a matter of stepping through the possibilities.</p>
<p>A &#8220;Debug Errors&#8221; connection test starts by putting all the nets into one state, and then switching them one at a time until they all arrive at another state. In your case you are looking for the place where it fails when trying to do this. There are 3 starting states and 2 finishing states, so there are 6 tests to run. Because it may be a one-directional problem (ie the problem happens when netA is low and netB is high, we also have a &#8220;direction&#8221; flag (giving another 6 test situations) if the first 6 don&#8217;t find a problem.</p>
<p>What you are looking for is the chain to break as it does during the normal test. This will cause a large amount of data to scroll past, and at the bottom again it says &#8220;The JTAG chain appears to be broken&#8221;. The following line will give you a pointer to the problem. It will say something like &#8220;A problem occurred whilst setting net NET23 high.&#8221; This is the place to start looking. What does that net do? Should it be kept at a constant value? Are there any resistors on that net that haven&#8217;t been properly defined? It may be worth setting the &#8220;Wait for keypress&#8221; option so that you can press a key to step through each net in turn.</p>
<p>Whichever options you choose it is often worth watching your board as the tests run, to see if the current demand surges or reset lights flash on, etc.</p>
<p>If you can&#8217;t reproduce the fault using the 12 tests above, then it may be that more factors are involved. There is a further option in the Connection Test settings to use a random setting algorithm. Check that box, start the connection test running, leave it while you go to a meeting, make a coffee, etc while it works.</p>
<p>It is also worth mentioning that the help in XJDeveloper gives details of each of the settings available in both modes.</p>
<p>Further information is also available on the XJTAG support pages in the &#8220;Application Notes&#8221; section.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xjtag.com/2009/06/debugging-connection-test-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
