Fundamentals of ARM JTAG Interface

Fundamentals of ARM JTAG Interface

1. Basic Knowledge of JTAG

    JTAG stands for Joint Test Action Group and is the IEEE 1149.1 standard. The advantage of using JTAG is that it allows integrated circuits to be tested on a PCB through boundary scan. In the ARM7TDMI processor, JTAG can directly control ARM’s internal bus, I/O ports, and other information for debugging purposes.

2. ARM JTAG Debugging Structure

    (1) The Debug Host is typically a PC running debugging software provided by ARM or third-party vendors. Common debugging software includes ARM Debug for Windows (ADW) in ARMSDT and arm-elf-gdb on Linux. Through this software, advanced ARM debugging commands can be sent, such as setting breakpoints, reading and writing memory, single-stepping, and running at full speed.

    (2) The Protocol Converter is responsible for converting the high-level ARM debugging commands issued by the Debug Host into low-level JTAG commands for communication with the ARM core. There are various mediums for communication between the Debug Host and the Protocol Converter, such as Ethernet, USB, RS-232, and parallel ports. The most typical communication protocol between the Debug Host and the Protocol Converter is the Angel standard provided by ARM, but it could also be a standard defined by third-party manufacturers. For details on the Angel protocol, refer to the relevant documentation for ARMSDT and ADS. Typical protocol converters include ARM’s MulTI-ICE, Abatron’s BDI, aiji’s OpenlCE32, and EPI’s Jeeni.

    (3) The JTAG macrocell of ARM7TDMI mainly consists of three JTAG scan chains (ScanChain) and one JTAG control TAP state machine.

3. JTAG Scan Chain Structure of ARM7TDMI Core

    The JTAG scan chain structure of the ARM7TDMI core mainly includes three JTAG scan chains: Scan Chain0, Scan Chain1, and Scan Chain2.

4. Accessing Peripherals via JTAG in ARM7TDMI

    As a typical debugging method for ARM, JTAG not only allows setting breakpoints in ARM but also controls the ARM core to read/write peripheral devices (for example, downloading programs to RAM or FLASH space). Typically, in the ARM7TDMI processor, access to ARM peripheral devices via JTAG is achieved by controlling JTAG scan chain 1.

Leave a Comment