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

From TIAO's Wiki
Revision as of 19:42, 10 December 2011 by Admin (talk | contribs) (Hardware preparation)
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:










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!