<?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; Electronics Tips</title>
	<atom:link href="http://blog.xjtag.com/category/electronics-tips/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>Mon, 09 Jan 2012 08:00:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Programming the TI MSP430 Microcontroller</title>
		<link>http://blog.xjtag.com/2011/07/programming-the-ti-msp430-microcontroller/</link>
		<comments>http://blog.xjtag.com/2011/07/programming-the-ti-msp430-microcontroller/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 07:00:18 +0000</pubDate>
		<dc:creator>Bob Storey</dc:creator>
				<category><![CDATA[Electronics Tips]]></category>
		<category><![CDATA[Support]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.xjtag.com/?p=774</guid>
		<description><![CDATA[Although it has a JTAG port, the TI MSP430 microcontroller is not a boundary scan capable device. Instead of the standard boundary scan registers there is a set of registers that allow the various functions of the device to be accessed and configured. To program the device the TAP controller is used to interact with [...]]]></description>
			<content:encoded><![CDATA[<p>Although it has a JTAG port, the TI MSP430 microcontroller is not a boundary scan capable device. Instead of the standard boundary scan registers there is a set of registers that allow the various functions of the device to be accessed and configured.<span id="more-774"></span> To program the device the TAP controller is used to interact with the flash controller registers.  The RAW JTAG commands in XJEase can be use to access these registers and allow the device to be programmed.</p>
<p>The process of programming the internal flash memory uses the IR path of the JTAG state machine to select or address specific registers in the flash controller and then uses the DR path to read or write the selected register.</p>
<p>The programming algorithm for a MSP430 does have one extra complication.  It uses the TDI pin to perform two different functions depending on which state the TAP controller state machine is in.</p>
<p>In all but the Run Test Idle state the TDI pin performs its normal function, allowing 1s and 0s to be shifted into the DR and IR registers, but in the Run Test Idle state the TDI input  becomes the TCLK input.  The TCLK input is used to clock the internal flash controller, causing data to be written to memory, and should not be confused with the standard TCK input used to clock the JTAG state machine.</p>
<p>The TCLK input has another restriction in that it has to be clocked at 350 kHz.  This can be achieved by setting the JTAG system&#8217;s TCK frequency to 700 kHz. Any pin on the XJLink can only be changed once per TCK period so this results in a 350 kHz TCLK signal.</p>
<p>If you are interested in using the MSP430 code we have developed, please, contact <a href="mailto:support@xjtag.com">support@xjtag.com</a> for more information.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xjtag.com/2011/07/programming-the-ti-msp430-microcontroller/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clearing Altera Cyclone III Devices</title>
		<link>http://blog.xjtag.com/2010/11/clearing-altera-cyclone-iii-devices/</link>
		<comments>http://blog.xjtag.com/2010/11/clearing-altera-cyclone-iii-devices/#comments</comments>
		<pubDate>Mon, 08 Nov 2010 07:00:38 +0000</pubDate>
		<dc:creator>Dominic Plunkett</dc:creator>
				<category><![CDATA[Electronics Tips]]></category>
		<category><![CDATA[XJDeveloper]]></category>
		<category><![CDATA[XJEase]]></category>

		<guid isPermaLink="false">http://blog.xjtag.com/?p=655</guid>
		<description><![CDATA[In the XJTAG application note “Working with configured Xilinx and Altera devices” the point is made that the way to get the best test coverage is to test with blank devices. Blanking a device has its own challenges - from generating a blank image to stopping the device from reconfiguring itself without having to blank [...]]]></description>
			<content:encoded><![CDATA[<p>In the XJTAG application note “<a href="http://www.xjtag.com/app-note-14.php">Working with configured Xilinx and Altera devices</a>” the point is made that the way to get the best test coverage is to test with blank devices.</p>
<p>Blanking a device has its own challenges -<span id="more-655"></span> from generating a blank image to stopping the device from reconfiguring itself without having to blank the configuration device as well.</p>
<p>For Altera Cyclone III devices, if they are setup to use either Active Serial or Active Parallel configuration schemes there is an easy way to clear the devices using just a few lines of RAW JTAG. These devices support what Altera calls CONFIG_IO which has two useful instructions for clearing the configuration from a device.</p>
<p>The instructions are ACTIVE_DISENGAGE and PULSE_NCONFIG. These two commands are used in the following XJEase code example. First the configuration controller is halted so the device does not attempt to re-configure itself. Secondly the existing configuration is cleared.</p>
<div style="padding: 4px; font-size: 8pt; margin: 20px 0px 10px; overflow: auto; width: 97.5%; cursor: text; direction: ltr; max-height: 200px; line-height: 12pt; font-family: 'Courier New',courier,monospace; background-color: #f4f4f4; text-align: left; border: 1px solid silver;">
<pre style="padding: 0px; font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-style: none; line-height: 12pt; font-family: 'Courier New',courier,monospace; background-color: #f4f4f4; text-align: left;">
<pre><tt>ClearCycloneConfig <span style="color: #990000;">(</span><span style="color: #990000;">)</span><span style="color: #990000;">(</span><span style="color: #009900;">INT</span> result<span style="color: #990000;">)</span>
  <span style="color: #009900;">CONST</span> <span style="color: #009900;">INT</span> ACTIVE_DISENGAGE <span style="color: #990000;">:</span><span style="color: #990000;">=</span> 0b1010110000<span style="color: #990000;">;</span>
  <span style="color: #009900;">CONST</span> <span style="color: #009900;">INT</span> PULSE_NCONFIG <span style="color: #990000;">:</span><span style="color: #990000;">=</span> 0b0000000001<span style="color: #990000;">;</span>

  <strong><span style="color: #0000ff;">JTAG</span></strong>
    <strong><span style="color: #0000ff;">IR</span></strong> <span style="color: #ff0000;">"IC1"</span> <span style="color: #990000;">:</span><span style="color: #990000;">=</span> ACTIVE_DISENGAGE<span style="color: #990000;">;</span>
    <strong><span style="color: #0000ff;">IRSCAN</span></strong> <span style="color: #ff0000;">"IDLE"</span><span style="color: #990000;">;</span>
    <strong><span style="color: #0000ff;">IR</span></strong> <span style="color: #ff0000;">"IC1"</span> <span style="color: #990000;">:</span><span style="color: #990000;">=</span> PULSE_NCONFIG<span style="color: #990000;">;</span>
    <strong><span style="color: #0000ff;">IRSCAN</span></strong> <span style="color: #ff0000;">"IDLE"</span><span style="color: #990000;">;</span>
  <strong><span style="color: #0000ff;">END</span></strong><span style="color: #990000;">;</span>
<strong><span style="color: #0000ff;">END</span></strong><span style="color: #990000;">;</span></tt></pre>
</pre>
</div>
<p>The above code is a complete XJEase function that can be called as part of a test run and will keep the Altera device blank until the power is cycled.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xjtag.com/2010/11/clearing-altera-cyclone-iii-devices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XJTAG Boundary Scan Testing with OMAP 35xx devices</title>
		<link>http://blog.xjtag.com/2010/09/xjtag-boundary-scan-testing-with-omap-35xx-devices/</link>
		<comments>http://blog.xjtag.com/2010/09/xjtag-boundary-scan-testing-with-omap-35xx-devices/#comments</comments>
		<pubDate>Mon, 13 Sep 2010 07:00:44 +0000</pubDate>
		<dc:creator>Bob Storey</dc:creator>
				<category><![CDATA[Board Design]]></category>
		<category><![CDATA[Electronics Tips]]></category>
		<category><![CDATA[Support]]></category>

		<guid isPermaLink="false">http://blog.xjtag.com/?p=608</guid>
		<description><![CDATA[Texas Instruments&#8217; OMAP processors are becoming more and more popular.  We have seen quite a few come through the office recently. The good news is that the OMAP processors do support boundary scan testing. The bad news is that it does not work straight out of the tin. TI do provide the instructions that are [...]]]></description>
			<content:encoded><![CDATA[<p>Texas Instruments&#8217; OMAP processors are becoming more and more popular.  We have seen quite a few come through the office recently.</p>
<p>The good news is that the OMAP processors do support boundary scan testing.<span id="more-608"></span> The bad news is that it does not work straight out of the tin.</p>
<p>TI do provide the instructions that are required to enable the boundary scan registers:</p>
<p><a href="http://e2e.ti.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.10.29.73/OMAP343_5F00_BSDL.pdf">http://e2e.ti.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.10.29.73/OMAP343_5F00_BSDL.pdf</a></p>
<p><a href="http://processors.wiki.ti.com/index.php/Boundary_Scan_on_OMAP35x">http://processors.wiki.ti.com/index.php/Boundary_Scan_on_OMAP35x</a></p>
<p>Unfortunately these do not give the whole story and the boundary scan register still will not function correctly:</p>
<p><a href="http://e2e.ti.com/support/dsp/omap_applications_processors/f/447/p/35977/130644.aspx">http://e2e.ti.com/support/dsp/omap_applications_processors/f/447/p/35977/130644.aspx</a></p>
<p>If you need to do boundary scan testing with a OMAP 35xx contact XJTAG Support (<a href="mailto:support@xjtag.com">support@xjtag.com</a>) and we will complete the story for you.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xjtag.com/2010/09/xjtag-boundary-scan-testing-with-omap-35xx-devices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debugging faults: always remember XJAnalyser!</title>
		<link>http://blog.xjtag.com/2010/09/debugging-faults-always-remember-xjanalyser/</link>
		<comments>http://blog.xjtag.com/2010/09/debugging-faults-always-remember-xjanalyser/#comments</comments>
		<pubDate>Mon, 06 Sep 2010 07:00:58 +0000</pubDate>
		<dc:creator>Bob Storey</dc:creator>
				<category><![CDATA[Electronics Tips]]></category>
		<category><![CDATA[XJAnalyser]]></category>
		<category><![CDATA[Electronics]]></category>

		<guid isPermaLink="false">http://blog.xjtag.com/?p=559</guid>
		<description><![CDATA[The traditional technique for debugging printed circuit boards is to &#8220;observe&#8221; the state using oscilloscopes or multi-meters and deduce a fault. This method actually suppresses a very powerful engineering instinct that would help us a lot if we could only give it a better chance. Let me illustrate the point with an example:- Did you [...]]]></description>
			<content:encoded><![CDATA[<p>The traditional technique for debugging printed circuit boards is to &#8220;observe&#8221; the state using oscilloscopes or multi-meters and deduce a fault. This method actually suppresses a very powerful engineering instinct that would help us a lot if we could only give it a better chance.<span id="more-559"></span> Let me illustrate the point with an example:-</p>
<p>Did you ever attempt to diagnose, understand or repair a mechanical or electro-mechanical mechanism (perhaps a toaster that won’t toast or even a gearbox from a car or motorbike)? Once you’ve removed the covers and are able to look at what you have, if you are lucky you may immediately see a broken component, but more than likely it will be hidden from immediate view. That’s when the engineers’ instinct to start moving the parts of the mechanism will become difficult to resist. Say you turn an input shaft and it gets stuck, you can use that as a starting point and ask “why is it stuck?” That’s a new track that may well lead to the answer you are looking for. Interacting with a problem, not simply observing is much more powerful as a problem solving method.</p>
<p>XJAnalyser is an ideal engineers’ tool that will allow you not only to observe, but also to interact with your board to debug or fault-find problems. Because it’s a “plug and play” tool, it’s always there when you need to explore board level issues in an intelligent, interactive and inspirational way. It won’t hold back your natural problem solving instincts by requiring a lengthy set-up.</p>
<p>The tool allows you to make use of the inbuilt JTAG test access. XJAnalyser allows you to not only to control circuit nets with a click of the mouse, but also show you the result on a clean graphical view.  Just like the mechanical fault analogy, you are able not only to observe, but also to manipulate.</p>
<p>You can quickly put your circuit into a state that will test your hunch. This might be impossible (or just very time consuming to achieve) within the “mission mode” operation of the circuit, perhaps requiring board mods or even special fault finding software to be written. Just like being able to turn the shaft of a gearbox to answer instinctive curiosity, with XJAnalyser you can either provoke some aspect of the problem or eliminate one of a number of possible explanations.</p>
<p>In fact, the analogy with mechanical systems understates the full power of XJAnalyser because it gives you visibility (and control) of circuit nodes which increasingly in modern electronics are entirely hidden from view and physical access. Once used XJAnalyser will quickly take its place alongside oscilloscope, logic analyser and multi-meter as an indispensable part of your work bench.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xjtag.com/2010/09/debugging-faults-always-remember-xjanalyser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bench Power Supplies</title>
		<link>http://blog.xjtag.com/2009/09/bench-power-supplies/</link>
		<comments>http://blog.xjtag.com/2009/09/bench-power-supplies/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 07:00:43 +0000</pubDate>
		<dc:creator>Dominic Plunkett</dc:creator>
				<category><![CDATA[Electronics Tips]]></category>

		<guid isPermaLink="false">http://blog.xjtag.com/?p=233</guid>
		<description><![CDATA[I bet most of you haven&#8217;t considered how you wire up a bench power supply &#8211; you just set the voltage and current limit and off you go. Some supplies have voltage sense inputs which are usually tied to the output terminals with a metal shorting link. When not using the voltage sense you should [...]]]></description>
			<content:encoded><![CDATA[<p>I bet most of you haven&#8217;t considered how you wire up a bench power supply &#8211; you just set the voltage and current limit and off you go.</p>
<p><span id="more-233"></span>Some supplies have voltage sense inputs which are usually tied to the output terminals with a metal shorting link. When not using the voltage sense you should connect the load to the sense terminals and not the output terminals. The reason is that if the shorting link on the terminals isn&#8217;t tight the output voltage can rise. Internally in the PSU the sense and output terminals are often linked with diodes to prevent the voltage rising beyond 0.6v per terminal, so if both links are loose the output could be 1.2v too high which might be enough to damage the unit under test.</p>
<p>I would recommend that you always connect the load to the sense terminals as these are the reference points for the PSU. So if you set 1.5v output voltage, and the PSU is running within its limits, it will provide 1.5v across the sense terminals even if the links are loose.</p>
<p>Also while I&#8217;m talking about PSUs -  if you have a multi output PSU, try and run a separate ground wiring to your board for each rail. Don&#8217;t be tempted to just link all the grounds at the PSU as the voltage drop across the ground cable can be considerable and can upset the other rails.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xjtag.com/2009/09/bench-power-supplies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

