JTAG boundary-scan helps your process in three ways: it saves your organization time, it is cost-effective and it strengthens the quality of your products. To explain how we do that, let’s look into some of the details.
The JTAG boundary-scan standard was developed to solve a fundamental, technical problem facing traditional PCB assembly test equipment, i.e. probing device pins in fine-pitch, high pin count SMD packages (in particular BGA’s). Embedding JTAG/boundary-scan logic in chips makes the pins readily accessible and allows test signals to be transmitted between devices, independent of the type of package or device complexity without external probing.
Testing is essential to guarantee the quality of your products. One possibility is to perform a functional test. However, functional testing has two main disadvantages: you don’t know if you covered all possible assembly defects, and íf you find a failure it is hard (time-consuming, costly) to diagnose its cause. These two shortcomings are addressed by structural testing.
But structural testing requires probing of device pins. With miniaturization, probing is no longer possible, and thus structural testing using external probes becomes impossible. With boundary-scan such external probing is no longer needed. Thus boundary-scan was developed in a way that in case of miniaturization structural testing is still possible.
In short: boundary-scan was developed to facilitate structural testing, also in case of miniaturization.
While the original standard focused on board testing, the JTAG interface was soon also used for in-system programming of devices (Flash memories, FPGAs, CPLDs, and microcontrollers). The JTAG boundary-scan standard now provides many advantages over traditional systems.
Traditional test equipment using probing techniques to access pins and signals on Printed Circuit Board Assemblies (PCBA’s) faces increasing challenges. First the increasing use of Surface Mount Devices (SMD), and in particular Ball Grid Array (BGA) packages, makes external probing of device pins and nets more and more complicated. Secondly the ongoing integration of functionality in a single chip, resulting in System-on-Chip (SoC) devices, results in an increase of the complexity of such devices making external control increasingly challenging. As a result the possible test coverage and the diagnostic resolution of traditional test methods decreases for boards using these technologies. When an increasing part of a PCBA can be reached via JTAG, both the test coverage and the diagnostic resolution via JTAG increase.
If no JTAG devices are used on a board, then of course only traditional test methods can be used to test and program a board. However, if JTAG devices are used on a PCBA then their capabilities can be used for test and programming. Depending on the design of the board and the percentage of JTAG access it is possible that only JTAG-based test and programing tools are sufficient to test and program the entire board. If only a part of the board is accessible though JTAG a combination of traditional test methods and JTAG provides a high test coverage.
Examples of built-in resources in chips accessible through the JTAG interface are the boundary-scan register and the microcontroller debug logic.
A boundary-scan register gives direct access to device pins without using the device functionality (the device core). Connections between different devices can easily be accessed for testing or programming. The boundary-scan register is at the heart of boundary-scan test and programming. Microcontroller debug registers/logic gives direct access to the microprocessor busses without using the microprocessor functionality.
The microprocessor debug logic is at the heart of emulative test and programming. Both internal and external memory peripherals connected to the processor busses can easily be accessed for testing or programming without embedded software.
The JTAG interface can not only be used for testing, but also as a JTAG Programmer to program devices on your PCBA’s. Flash memories, FPGA’s, CPLD’s, microcontrollers (embedded flash) and serial devices like I2C, SPI and PMBus devices can be programmed via their four port JTAG interface or via surrounding JTAG devices. Through JTAG it is possible to program such devices after they have been mounted on the PCB. This on-board programming, or in-system programming (ISP) results in:
Programming of large flash devices can be very slow, due to the serial nature of JTAG. This means if there is a programmable logic device (such as an FPGA) connected to the flash part, Provision and others can be used to dramatically speed up the programming process quite often reaching the maximum speed for the device.
Our solutions uses the internal circuitry of an onboard FPGA to create a simple flash programmer. This relieves the bandwidth restricted JTAG scan chain of repetitive tasks such as shifting in control, address and data bits. By removing traffic from the scan chain, the solutions are able to achieve close to theoretical programming times for a given flash memory device.
More information on in-system device programming can be found in our "In-System Device Programming guide".