How to program Xilinx CPLDs using TIAO USB Multi-Protocol Adapter (TUMPA) on Windows or Linux

From TIAO's Wiki
Revision as of 19:49, 10 December 2011 by Admin (talk | contribs) (Program CPLD)
Jump to: navigation, search

10 PCS, 10cm x 10cm, 2 layers prototype for $38.80 shipped!








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

Software Installation

  • Since I am going to program CPLD, download CPLD's map file from here. Unzip to a directory, e.g. d:\dev\.
  • 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.


Xc3sprog.tumpa.dir.png

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):

Tumpa.jtag.connector.1.png
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):

Tumpa.ttl.connector.png
Pin # Description
9 +3.3V
11, 12 GND


The pinout of our XC2C64A Dev Board (JTAG pins and V3.3, GND are on P1):

RGH-PINs.png
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:

Tumpa-rgh-1.jpg

Tumpa-rgh-2.jpg

Tumpa-rgh-3.jpg

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:

Tumpa-rgh-4.jpg

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:

Xc3sprog.tumpa.png

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.

Xc3sprog.tumpa.xc2c64a.png


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!