Skip to content

Zamuhrishka/ArduJTAG-SwissKnife

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build with PlatformIO

ArduJTAG Toolbox: Your Small JTAG Swiss Army Knife

This is an attempt to make an Arduino-based JTAG research tool.

WARNING: The project is still under development.

Warning

Pinout

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

CLI

The sketch supports the CLI interface and the following commands are currently available.

help

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.

version

Show current firmware version.

Example

version
> Firmware version: DEV-be5616f-24_01_07

reset

Reset the JTAG TAP. No options required.

Example:

reset
> Reset

ir

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

dr

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

sequence

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

TODO: