This is an attempt to make an Arduino-based JTAG research tool.
WARNING: The project is still under development.
So far in this version the pinout of JTAG signals is tightly bound to the Arduino pins. Future versions are planned to add dynamic change of pinout.
JTAG | Arduino |
---|---|
TCK | 2 |
TMS | 3 |
TDI | 4 |
TDO | 5 |
RST | 6 |
GND | GND |
The sketch supports the CLI interface and the following commands are currently available.
Show available commands list.
Example:
help
> Commands:
reset Reset the JTAG TAP. No options required.
ir [X] -len [Y] Write to the IR register of TAP.
-ir X: IR instruction in hex (e.g., 1FE).
-len Y: Length of the instruction in bits.
dr [X] -len [Y] Write to the DR register of TAP.
-dr X: Data for DR in hex (e.g., 1A2B).
-len Y: Length of the data in bits.
clock -tms [X] -tdi [Y] Write value for TMS and TDI wires.
-tms X: Bit value for TMS.
-tdi Y: Bit value for TDI.
sequence -tms [X] -tdi [Y] -len [Z] Write sequence of bits.
-tms X: Bits value for TMS in hex (e.g., 1A2B).
-tdi Y: Bits value for TDI in hex (e.g., 1A2B).
-len Y: Number of the batch of bits.
Show current firmware version.
Example
version
> Firmware version: DEV-be5616f-24_01_07
Reset the JTAG TAP. No options required.
Example:
reset
> Reset
Write to the IR register of TAP. This command require 2 additional arguments:
- code X: IR instruction in hex (e.g., 1FE).
- len Y: Length of the instruction in bits.
Example:
ir -code 1FE -len 9
> IR written
Write to the DR register of TAP. This command require 2 additional arguments:
- data X: Data for DR in hex (e.g., 0200008002).
- len Y: Length of the data in bits.
Example:
dr -data 0200008002 -len 36
> 02 00 00 80 03
Write sequence of bits. This command require 3 additional arguments:
- tms X: Bits value for TMS in hex (e.g., 1A2B).
- tdi Y: Bits value for TDI in hex (e.g., 1A2B).
- len Y: Number of the batch of bits.
Example:
sequence -tms 06600100000018 -tdi C03F0000000000 -len 54
> 01 00 16 80 03 07 02
- Add command: Set/Get JTAG speed
- Arduino pins and JTAG pins assigment
- https://github.com/szymonh/JTAGscan
- https://github.com/cyphunk/JTAGenum
- https://github.com/colinoflynn/pyjtagbs
- https://github.com/viveris/jtag-boundary-scanner