How to program Xilinx CPLDs using TIAO USB Multi-Protocol Adapter (TUMPA) on Windows or Linux
10 PCS, 10cm x 10cm, 2 layers prototype for $38.80 shipped!
Contents
Buy various JTAG cables for your Satellite Receiver, Cable Modem, Wireless Router, Standard Wiggler from http://www.easymg.com and http://www.diygadget.com
Overview
In this tutorial, I am going to show you how to program TIAO Xilinx XC2C64A CoolRunner-II CPLD Dev Board (Reset Glitch) using TIAO USB Multi-Protocol Adapter (TUMPA). This method applies to all devices supported by xc3sprog.
The process is fairly straightforward.
Required Hardware and Software
- TIAO USB Multi-Protocol Adapter (TUMPA)
- Patched xc3sprog, download from here
- Supported CPLD, we use TIAO Xilinx XC2C64A CoolRunner-II CPLD Dev Board (Reset Glitch) as our example.
- (Optional, only needed if you are programming CPLDs) Xilinx CPLD map files. It is part of Xilinx Labtools (labtools\labtools\xbr\data), or you can download from here
Software Installation
- Since I am going to program CPLD, download CPLD's map file from here. Unzip to a directory, e.g. d:\dev\.
- Install drivers for TUMPA. Instruction for Windows XP: How to install TIAO USB Multi Protocol Adapter Driver on Windows XP, Vista and Windows 7: How to install TIAO USB Multi Protocol Adapter Driver on Windows Vista or Windows 7. For Linux, you can get the driver here: FTDIDXX Drivers
- Download TIAO patched xc3sprog from here, unzip it to a directory. In my example, I unzipped to d:\dev\ directory. After you unzip it, a directory TIAO-xc3sprog will be created. The Windows applications are under win32, Linux applications are in linux32.
Hardware preparation
In our example, we use XC2C64A (RGH Hack Dev Board), it takes +3.3V power. TUMPA provides both +5V and +3.3V, thus a separate power supply to power up CPLD is not needed.
Connect TUMPA's TDI, TDO, TCK, TMS, +3.3V and GND pins to our XC2C64A dev board's TDI, TDO, TCK, TMS, +3.3V and GND respectively using the supplied female to female flexible cable.
The pinout of the JTAG connector (Complete pinout is here: TIAO USB Multi Protocol Adapter User's Manual#20 PIN JTAG Connector):
Pin # | Description |
---|---|
5 | TDI |
7 | TMS |
9 | TCK |
13 | TDO |
4, 6, 8, 10, 12, 14, 16, 18, 20 | GND |
The +3.3V and GND pin can be obtained from TTL Level Serial Connector.
Pinout of TTL Level Serial Connector (Complete pinout: TIAO USB Multi Protocol Adapter User's Manual#TTL Level Serial Connector):
Pin # | Description |
---|---|
9 | +3.3V |
11, 12 | GND |
The pinout of our XC2C64A Dev Board (JTAG pins and V3.3, GND are on P1):
Pin # | Description |
---|---|
P1.1 | TDI |
P1.2 | TMS |
P1.4 | TCK |
P1.3 | TDO |
P1.11 | GND |
P1.12 | +3.3V |
Now connect TDI, TDO, TCK, TMS, GND and +3.3V together:
Program CPLD
Copy the trinity.jed (or your jed file) to TIAO-xc3sprog\win32 or linux32 directory. In my case, I copied it to TIAO-xc3sprog\win32 directory as I am testing on Windows 7 64bit.
Connect TUMPA to PC using a USB cable:
Now, open a dos prompt windows, change directory to where you have unzipped TIAO-xc3sprog\win32, run the following command to detect JTAG chain:
xc3sprog -c tumpa -L
The -c tumpa option is to specify using TUMPA JTAG adapter. The -L option is to tell xc3sprog to use FTDI's D2xx driver instead of LibUSB and LIBFTDI. This is recommended.
Your CPLD should be detected:
Now, run the following command to program the CPLD:
xc3sprog -c tumpa -L -m D:\dev\cpld.data trinity.jed
The option -m D:\dev\cpld.data specifies the CPLD map file directory. If you have map files in a different, specify it by -m <CPLD map file location>. The last parameter is the jed file you wish to write to CPLD. In my case, it is trinity.jed. xc3sprog will program the jed to CPLD and verify it.
Now, you have successfully programmed our RGH dev board.
There are other commands available from xc3sprog, such as erase, read. Run xc3sprog without any parameter to print out the usage.
Buy various JTAG cables for your Satellite Receiver, Cable Modem, Wireless Router, Standard Wiggler from http://www.easymg.com and http://www.diygadget.com
10 PCS, 10cm x 10cm, 2 layers prototype for $38.80 shipped!