A JTAG (Joint Test Action Group) debugger is a tool used for debugging and programming microcontrollers, microprocessors, and other embedded systems. It uses the JTAG interface, a standardized protocol for accessing and controlling the internal state of a chip during development and testing. JTAG interface from the hardware interface is nothing but a SPI interface. We use JTAG for firmware development, Boundary-Scan Testing, In-Circuit Debugging.
There are several JTAG Debuggers available in the market:
- SEGGER J-Link
- ARM J-link
- XDS110 Debug probe
- Bus Pirate
- JTAGulator
- Bus Blaster v4
- MAJIC JTAG probe
- ESP-PROG
- PEMicro Multilink
- Lauterbach TRACE32
- Olimex ARM-USB-TINY-H
- NXP CodeWarrior TAP
- Black Magic Probe
- STLINK-V3MODS
- Atmel-ICE
While some of the debuggers can be used for various devices, some are customized to the specific microcontroller chip.
Below is a snapshot from Espressif which shows the flow with JTAG adapter.
JTAG require OpenOCD (on chip debugger) which helps facilitate debugging. The JTAG debuggers used in the market are USB based which interface the DUT to the system. JTAG hardware is built using chips like FT2232 (Bus Blaster v4).
The latest RISC-V microcontrollers also need JTAG interface and OpenOCD. The details of how debugging happens here can be studied form the below link:
There are also JTAG software tools available which show a detailed view of the chip. One such software is JSCAN . JSCAN lets you view and control JTAG pins in real-time. With a simple click of your mouse, you can set pins HIGH or LOW and observe the results right on your PC.JSCAN works independently of any logic inside the JTAG device, you do not need any special firmware, code or logic installed. View and control pins in real-time, program FLASH memories, create test macros, for system test, easy to use graphical interface and affordable.
0 Comments