This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Boundary Scan

Hi can anyone please explain me what's boundary scan in JTAG is?? and how it can be used to check the interconnect in PCB or inside an IC without connecting actual pin??

  • When debugging a JTAG-capable chip, you can read and write peripherial states and registers in the chip.

    But way before the processors got a debugging module with helper functions like hw breakpoint comparators etc, you had a feature where the chip internally spanned many critical features (all I/O pins, and many important signals) in a chain that you could access using the JTAG interface.

    This means that even without any program in the chip, it's possible to set all output-capable signals to known states and read back the state of all input-capable signals.

    So in a factory test, you could toggle the TX signal for an UART and have external hardware check the voltages out from the RS232 transceiver. And in the same way, the external hardware can send in UART stimuli to the board, while the JTAG interface reads out if the processor sees a zero or a one in the UART RX pin.

    The signals accessible would normally also allow you to turn on the crystal oscillator of the processor and read back if the oscillator ticks.

    Boundary scan is available for many chips, besies processors. So you may have a boundary scan interface on a memory chip, CPLD, ...

    Of course, many products are tested by having the JTAG interface download a real program into RAM of the processor and have that program run. This is similar to how Keil programs the flash of different processors. They download a helper program for the specific chip (flash algorithm) and then download a program block-by-block to RAM and have the helper program flash a sector at a time.

    Boundary scan is good for testing individual signals. Downloading a helper program in the processor is better when you have to quickly process large test patterns - for example if you need to test all memory cells of a RAM.

    For "traditional" processors, where RAM and flash are external chips, the boundary scan is a very good way to test a card - you can't run a program in a board that has a bad solder joint on an address or data line, in which case it's excellent to be able to supply internal stimuli. With a microcontroller with internal RAM and flash, and possibly also support for an internal RC oscillator, it is often simpler to download a factory-test program into the processor.