This is a small software application written in Python that interacts with a Xilinx XC2C64A chip mounted on a CoolRunner-II development board.
This design fills in the "back box" between the PC and the JTAG interface on the chip.
The program:
- Reads back the unique IDCODE from the XC2C64A chip, and compares it to the IDCODE in the chip’s datasheet.
- Blinks D1 and D2 (alternating) at 0.5Hz
The module written can be extended to implement JTAG control over other chips.
The equipment needed to complete this exercise includes:
-
Analog Discovery 2 (optional, for development/debugging)
-
Breadboard (optional, for development/debugging)
-
Python >3.6
Wire up the project according to the connection diagram:
This code is tested to run on Windows 10 in Powershell
I recommend creating a virtual environment before running, but this is optional:
PS path\to\ftd2jtag> py -m venv env
PS path\to\ftd2jtag> .\env\Scripts\activate
PS path\to\ftd2jtag> pip install -r requirements.txt
PS path\to\ftd2jtag> py .\jtag_exercise.py
You may also view the JTAG signals in the WaveForms project using the Analog Discovery 2.
Finding the right datasheets, schematics, and other files from the manufacturer websites was crucial to completing the exercise.
- FTDI Application Note AN_135 FTDI MPSSE Basics
- FTDI D2XX Programmer's Guide
- FTDI Application Note AN_108 Command Processor for MPSSE...
- FTDI Application Note AN_129 Interfacing FTDI USB Hi-Speed Devices to a JTAG TAP
- CoolRunner-II BSDL files
- CoolRunner-II Programmer Qualification Specification
Rock Boynton - Portfolio website | GitHub | LinkedIn