James Stanbridge of JTAG Technologies explains how a new and novel use of boundary-scan technology is further assisting PCB debug and repair
Late 2009 saw a dramatic change in the world of boundary-scan with the introduction of a family of low- and even no-cost boundary-scan tools called JTAGLive.
The first of these tools to gain popularity was a free 'downloadable' utility called Buzz; so called because it allows instant pin-to-pin continuity tests, a la ‘buzzing out’ with a DMM.
Boundary-scan-powered PCB debug tools that use only BSDL models without reference to schematic or netlist information from CAD systems have existed for several years. However these have tended to only work by interactively controlling individual pins which for engineers in repair depots is not always advisable and might even prove detrimental to the unit under test (UUT).
Late 2011 though saw the addition of AutoBuzz to the JTAGLive family. It is the first product of its kind to make use of boundary-scan technology in a different (and novel) way. It works by learning a given board's connectivity map using a 'seek and discover' mode that stimulates the pins of boundary-scan devices in sequence; without damaging the board's integrity.
In essence, it places a stimulus signal on the pin of a device, notes where the signal turns up (and it could be in multiple places) and then moves on to the next pin.
In this way you can take a known good PCB (i.e. a golden reference board) and establish a reference connectivity map. Repair depots can then subsequently learn the connectivity map of a faulty board and automatically compare it against the golden reference (See Figure 1).
This 'seek, discover and compare' technique enables the detection of short circuits or opens on those sections of the target board that are accessible via the boundary-scan compliant pins.
To build-up the capability within a low-cost debug and repair station users can add further modules as their needs change. Bolt-on modules allow you to build more complex, vector-based cluster test sequences.
These can be managed by a non-programmers interactive GUI or, for more advanced test and device programming applications, via a full Python language API.
Using the non-programmers interface each vector in a sequence can contain a set of drive values for device inputs and the corresponding sensed values on the device outputs. By storing the sequence for a known-good board it is possible to create an array of tests for boards of the same type.
Typical tests could include Flash ID-code checks or testing I2C and SPI bus protocol parts. Vector sets can be up to unlimited patterns long and with no limit to the number of pins used.
Built in vector generation modes include Walk 1, Walk 0 and Binary count. If you can access the critical signals of a device with boundary-scan enabled pins then you can most likely test it using this module.
Command and control structure
The Python scripting API provides a more advanced command and control structure to manipulate and sense cluster I/Os.
Specifically, it can be used for functional, device-oriented test. For example, it can be used for mixed-signal parts that require the handling of variables and operations that require user-intervention or looping test patterns to set up device registers.
Creating test modules in JTAGLive Script promotes device-orientated testing and hence re-use of test code. Using the Python language means that thousands of auxiliary routines can be obtained from the now well-established user community.
In conclusion, AutoBuzz make use of boundary-scan technology - which was devised more than 20 years ago - in a new, novel and interesting way. What's more, the wider adoption of the technology within the engineering community has enabled the tools to be priced within the budgets of most engineering departments; particularly when some tools are now free.