Difference between revisions of "How to program Xilinx CPLDs using TIAO USB Multi-Protocol Adapter (TUMPA) on Windows or Linux"

From TIAO's Wiki
Jump to: navigation, search

10 PCS, 10cm x 10cm, 2 layers prototype for $38.80 shipped!
(Program CPLD)
(Software Installation)
Line 24: Line 24:
 
* Supported CPLD, we use [http://www.diygadget.com/xilinx-xc2c64a-coolrunner-ii-cpld-dev-board-reset-glitch.html TIAO Xilinx XC2C64A CoolRunner-II CPLD Dev Board (Reset Glitch)] as our example.
 
* Supported CPLD, we use [http://www.diygadget.com/xilinx-xc2c64a-coolrunner-ii-cpld-dev-board-reset-glitch.html 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 [http://www.megaupload.com/?d=W3I4POQ2 here]
 
* (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 [http://www.megaupload.com/?d=W3I4POQ2 here]
 +
 +
 +
== XC3SPROG Supported Devices==
 +
 +
The following is a list of supported devices of xc3sprog as of Rev646:
 +
 +
<pre>
 +
# IDCODE IR_len ID_Cmd Text
 +
03642093      6    0x9 XC7K30T
 +
03647093      6    0x9 XC7K70T
 +
0364c093      6    0x9 XC7K160T
 +
03651093      6    0x9 XC7K325T
 +
03656093      6    0x9 XC7K410T
 +
 +
03667093      6    0x9 XC7V285T
 +
0366C093      6    0x9 XC7V450T
 +
03671093      6    0x9 XC7V585T
 +
03676093      6    0x9 XC7V855T
 +
 +
03687093      6    0x9 XC7VX4855T
 +
 +
04244093    10  0x3c9 XC6VLX75T(L)
 +
0424a093    10  0x3c9 XC6VLX130T(L)
 +
0424c093    10  0x3c9 XC6VLX195T(L)
 +
04250093    10  0x3c9 XC6VLX240T(L)
 +
04252093    10  0x3c9 XC6VLX365T(L)
 +
04256093    10  0x3c9 XC6VLX550T(L)
 +
0423a093    10  0x3c9 XC6VLX760(L)
 +
 +
04286093    10  0x3c9 XC6VSX315T(L)
 +
04288093    10  0x3c9 XC6VSX475T(L)
 +
 +
042c4093    10  0x3c9 XC6VCX75T
 +
042ca093    10  0x3c9 XC6VCX130T
 +
042cc093    10  0x3c9 XC6VCX195T
 +
042d0093    10  0x3c9 XC6VCX240T
 +
 +
04000093      6    0x9 XC6SLX4
 +
04001093      6    0x9 XC6SLX9
 +
04002093      6    0x9 XC6SLX16
 +
04004093      6    0x9 XC6SLX25 
 +
04024093      6    0x9 XC6SLX25T
 +
04008093      6    0x9 XC6SLX45
 +
04028093      6    0x9 XC6SLX45T
 +
0400e093      6    0x9 XC6SLX75
 +
0402e093      6    0x9 XC6SLX75T
 +
04011093      6    0x9 XC6SLX100
 +
04031093      6    0x9 XC6SLX100T
 +
0401d093      6    0x9 XC6SLX150
 +
0403d093      6    0x9 XC6SLX150T
 +
 +
0286e093    10  0x3c9 XC5VLX30
 +
02896093    10  0x3c9 XC5VLX50
 +
028ae093    10  0x3c9 XC5VLX85
 +
028d6093    10  0x3c9 XC5VLX110
 +
028ec093    10  0x3c9 XC5VLX155
 +
0290c093    10  0x3c9 XC5VLX220
 +
0295c095    10  0x3c9 XC5VLX330
 +
 +
02a56093    10  0x3c9 XC5VLX20T
 +
02a6e093    10  0x3c9 XC5VLX30T
 +
02a96093    10  0x3c9 XC5VLX50T
 +
02aae093    10  0x3c9 XC5VLX85T
 +
02ad6093    10  0x3c9 XC5VLX110T
 +
02aec093    10  0x3c9 XC5VLX155T
 +
02b0c093    10  0x3c9 XC5VLX220T
 +
02b5c093    10  0x3c9 XC5VLX330T
 +
 +
02e72093    10  0x3c9 XC5SX35T
 +
02e9a093    10  0x3c9 XC5SX50T
 +
02ece093    10  0x3c9 XC5SX95T
 +
02f3e093    10  0x3c9 XC5SX260T
 +
 +
04502093    10  0x3c9 XC5VTX150T
 +
0453e093    10  0x3c9 XC5VTX240T
 +
 +
03276093    10  0x3c9 XC5VFX30T
 +
032c6093    10  0x3c9 XC5VFX70T
 +
032d8093    14  0x3c9 XC5VFX100T
 +
03300093    14  0x3c9 XC5VFX130T
 +
03334093    14  0x3c9 XC5VFX200T
 +
 +
0140d093      6   0x9 XC3S50
 +
01414093      6   0x9 XC3S200
 +
0141c093      6   0x9 XC3S400
 +
01428093      6   0x9 XC3S1000
 +
01434093      6   0x9 XC3S1500
 +
01440093      6   0x9 XC3S2000
 +
01448093      6   0x9 XC3S4000
 +
01450093      6   0x9 XC3S5000
 +
     
 +
01C10093      6    0x9 XC3S100E
 +
01C1A093      6    0x9 XC3S250E
 +
01C22093      6    0x9 XC3S500E
 +
01C2E093      6    0x9 XC3S1200E
 +
01C3A093      6    0x9 XC3S1600E
 +
 +
02210093      6    0x9 XC3S50A
 +
02218093      6    0x9 XC3S200A
 +
02220093      6    0x9 XC3S400A
 +
02228093      6    0x9 XC3S700A
 +
02230093      6    0x9 XC3S1400A
 +
 +
02610093      6    0x9 XC3S50AN
 +
02618093      6    0x9 XC3S200AN
 +
02620093      6    0x9 XC3S400AN
 +
02628093      6    0x9 XC3S700AN
 +
02630093      6    0x9 XC3S1400AN
 +
 +
03840093      6    0x9 XC3SD1800
 +
0384E093      6    0x9 XC3SD3400
 +
 +
01008093      6   0x9 XC2V40
 +
01010093      6   0x9 XC2V80
 +
01018093      6   0x9 XC2V250
 +
01020093      6   0x9 XC2V500
 +
01028093      6   0x9 XC2V1000
 +
01030093      6   0x9 XC2V1500
 +
01038093      6   0x9 XC2V2000
 +
01040093      6   0x9 XC2V3000
 +
01050093      6   0x9 XC2V4000
 +
01060093      6   0x9 XC2V6000
 +
01070093      6   0x9 XC2V8000
 +
 +
05044093      8    0xfe XCF01S
 +
05045093      8    0xfe XCF02S
 +
05046093      8    0xfe XCF04S
 +
 +
05057093    16  0xfe XCF08P
 +
05058093    16  0xfe XCF16P
 +
05059093    16  0xfe XCF32P
 +
 +
00608093      5   0x9 XC2S15
 +
0060c093      5   0x9 XC2S30
 +
00610093      5   0x9 XC2S50
 +
00614093      5   0x9 XC2S100
 +
00618093      5   0x9 XC2S150
 +
0061c093      5   0x9 XC2S200
 +
     
 +
#XC95XL
 +
09602093      8  0xfe XC9536XL
 +
09604093      8  0xfe XC9572XL
 +
09608093      8  0xfe XC95144XL
 +
09616093      8  0xfe XC95288XL
 +
#XC95XV
 +
09702093      8  0xfe XC9536XV
 +
09704093      8  0xfe XC9572XV
 +
09708093      8  0xfe XC95144XV
 +
09716093      8  0xfe XC95288XV
 +
 +
#XC2C
 +
06c1c093      8  0x1 XC2C32_VQ44
 +
06c1d093      8  0x1 XC2C32_PC44/64
 +
06c1b093      8  0x1 XC2C32A_QF32
 +
06d1d093      8  0x1 XC2C32A_PC44
 +
06e1b093      8  0x1 XC2C32A_CP56
 +
06e1c093      8  0x1 XC2C32A_VQ44
 +
06e1d093      8  0x1 XC2C32A_PC44/64
 +
 +
06c5a093      8  0x1 XC2C64-PC44
 +
06c5b093      8  0x1 XC2C64-CP132
 +
06c5c093      8  0x1 XC2C64-VQ100
 +
06c5d093      8  0x1 XC2C64-CP56
 +
06c5e093      8  0x1 XC2C64-VQ44
 +
 +
06e59093      8  0x1 XC2C64A-QF48
 +
06e5a093      8  0x1 XC2C64A-PC44
 +
06e5b093      8  0x1 XC2C64A-CP132
 +
06e5c093      8  0x1 XC2C64A-VQ100
 +
06e5d093      8  0x1 XC2C64A-CP56
 +
06e5e093      8  0x1 XC2C64A-VQ44
 +
 +
06d8a093      8  0x1 XC2C128_VQ100
 +
06d8b093      8  0x1 XC2C128_CP132
 +
06d8c093      8  0x1 XC2C128_TQ144
 +
06d8e093      8  0x1 XC2C128_FT256
 +
 +
06d4a093      8  0x1 XC2C256_VQ100
 +
06d4b093      8  0x1 XC2C256_CP132
 +
06d4c093      8  0x1 XC2C256_TQ144
 +
06d4d093      8  0x1 XC2C256_PQ208
 +
06d4e093      8  0x1 XC2C256_FT256
 +
 +
06d5a093      8  0x1 XC2C384_FG324
 +
06d5b093      8  0x1 XC2C384_CP204
 +
06d5c093      8  0x1 XC2C384_TQ144
 +
06d5d093      8  0x1 XC2C384_PQ208
 +
06d5e093      8  0x1 XC2C384_FT256
 +
 +
06d7a093      8  0x1 XC2C512_FG324
 +
06d7c093      8  0x1 XC2C512_PQ208
 +
06d7e093      8  0x1 XC2C512_FT256
 +
 +
#unsupported
 +
#Virtex2
 +
01020093      6    5 XC2V500
 +
#XC95
 +
09502093      8  0xfd XC9536
 +
09504093      8  0xfd XC9572
 +
09506093      8  0xfd XC95108
 +
09508093      8  0xfd XC95144
 +
09512093      8  0xfd XC95216
 +
09516093      8  0xfd XC95288
 +
#XC18
 +
05024093      8  0xfd XC18V01
 +
05025093      8  0xfd XC18V02
 +
05026093      8  0xfd XC18V04
 +
05023093      8  0xfd XC18V512
 +
 +
##Atmel
 +
#list should not care for the version part
 +
0978203f      4  0x1 AT90USB
 +
0958103f      4  0x1 AT90CAN32
 +
0968103f      4  0x1 AT90CAN64
 +
0978103f      4   0x1 AT90CAN128
 +
0970403f      4   0x1 ATmega1281
 +
0970303f      4   0x1 ATmega1280
 +
0970203f      4   0x1 ATmega128
 +
0960803f      4  0x1 ATMEGA640
 +
0960603f      4  0x1 ATMEGA6450
 +
0960503f      4  0x1 ATMEGA645
 +
0960403f      4  0x1 ATMEGA6490
 +
0960303f      4  0x1 ATMEGA649
 +
0960a03f      4  0x1 ATMEGA644p
 +
0960903f      4  0x1 ATMEGA644
 +
0960603f      4  0x1 ATMEGA650
 +
0960203f      4   0x1 ATmega64
 +
0950103f      4   0x1 ATmega323
 +
0950203f      4   0x1 ATmega32
 +
0940a03f      4   0x1 ATmega164p
 +
0940703f      4   0x1 ATmega165(p)
 +
0940403f      4   0x1 ATmega162
 +
0940503f      4   0x1 ATmega169(p)
 +
0940303f      4   0x1 ATmega16
 +
0940403f      4   0x1 ATmega162
 +
0940503f      4   0x1 ATmega169
 +
 +
0964203f      4  0x3 ATxmega64A3
 +
0964403f      4  0x3 ATxmega96A3
 +
0964e03f      4  0x3 ATxmega64A1
 +
0964c03f      4  0x3 ATxmega64A3R
 +
0964d03f      4  0x3 ATxmega96A3R
 +
0965003f      4  0x3 ATxmega96A1
 +
0974a03f      4  0x3 ATxmega128AR
 +
0974c03f      4  0x3 ATxmega128A
 +
0984203f      4  0x3 ATxmega256A3
 +
0984303f      4  0x3 ATxmega256A3B
 +
 +
05b1703f      3    0 AT91SAM7X256
 +
#AVR32
 +
01e8203f    5  0x1 AT32AP7000
 +
 +
#STM
 +
06410041    5  0x1 STM32L1_Med_density
 +
06411041    5  0x1 STM32F2
 +
06412041    5  0x1 STM32F1_Low_density
 +
06414041    5  0x1 STM32F1_High_density
 +
06418041    5  0x1 STM32F1_Connectivity_line
 +
06420041    5  0x1 STM32F1_Low_Med_density_value
 +
06428041    5  0x1 STM32F1_High_density_value
 +
06430041    5  0x1 STM32F1_XL_density
 +
06413041    5  0x1 STM32F4
 +
 +
#ARM Debug
 +
3BA00477    4  0xe ARM_Cortex-M3_r1p1-01rel0
 +
4BA00477    4  0xe ARM-Cortex-M4F_r0p1
 +
 +
#Manufacturer list
 +
00000093        99  0 Xilinx_Unknown
 +
0000003f 99  0 Atmel_Unknown
 +
</pre>
  
 
== Software Installation ==
 
== Software Installation ==

Revision as of 19:55, 10 December 2011








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


XC3SPROG Supported Devices

The following is a list of supported devices of xc3sprog as of Rev646:

# IDCODE IR_len ID_Cmd Text
03642093      6    0x9 XC7K30T
03647093      6    0x9 XC7K70T
0364c093      6    0x9 XC7K160T
03651093      6    0x9 XC7K325T
03656093      6    0x9 XC7K410T

03667093      6    0x9 XC7V285T
0366C093      6    0x9 XC7V450T
03671093      6    0x9 XC7V585T
03676093      6    0x9 XC7V855T

03687093      6    0x9 XC7VX4855T

04244093     10  0x3c9 XC6VLX75T(L)
0424a093     10  0x3c9 XC6VLX130T(L)
0424c093     10  0x3c9 XC6VLX195T(L)
04250093     10  0x3c9 XC6VLX240T(L)
04252093     10  0x3c9 XC6VLX365T(L)
04256093     10  0x3c9 XC6VLX550T(L)
0423a093     10  0x3c9 XC6VLX760(L)

04286093     10  0x3c9 XC6VSX315T(L)
04288093     10  0x3c9 XC6VSX475T(L)

042c4093     10  0x3c9 XC6VCX75T
042ca093     10  0x3c9 XC6VCX130T
042cc093     10  0x3c9 XC6VCX195T
042d0093     10  0x3c9 XC6VCX240T

04000093      6    0x9 XC6SLX4
04001093      6    0x9 XC6SLX9
04002093      6    0x9 XC6SLX16
04004093      6    0x9 XC6SLX25  
04024093      6    0x9 XC6SLX25T
04008093      6    0x9 XC6SLX45
04028093      6    0x9 XC6SLX45T
0400e093      6    0x9 XC6SLX75
0402e093      6    0x9 XC6SLX75T
04011093      6    0x9 XC6SLX100
04031093      6    0x9 XC6SLX100T
0401d093      6    0x9 XC6SLX150
0403d093      6    0x9 XC6SLX150T

0286e093     10  0x3c9 XC5VLX30
02896093     10  0x3c9 XC5VLX50
028ae093     10  0x3c9 XC5VLX85
028d6093     10  0x3c9 XC5VLX110
028ec093     10  0x3c9 XC5VLX155
0290c093     10  0x3c9 XC5VLX220
0295c095     10  0x3c9 XC5VLX330

02a56093     10  0x3c9 XC5VLX20T
02a6e093     10  0x3c9 XC5VLX30T
02a96093     10  0x3c9 XC5VLX50T
02aae093     10  0x3c9 XC5VLX85T
02ad6093     10  0x3c9 XC5VLX110T
02aec093     10  0x3c9 XC5VLX155T
02b0c093     10  0x3c9 XC5VLX220T
02b5c093     10  0x3c9 XC5VLX330T

02e72093     10  0x3c9 XC5SX35T
02e9a093     10  0x3c9 XC5SX50T
02ece093     10  0x3c9 XC5SX95T
02f3e093     10  0x3c9 XC5SX260T

04502093     10  0x3c9 XC5VTX150T
0453e093     10  0x3c9 XC5VTX240T

03276093     10  0x3c9 XC5VFX30T
032c6093     10  0x3c9 XC5VFX70T
032d8093     14  0x3c9 XC5VFX100T
03300093     14  0x3c9 XC5VFX130T
03334093     14  0x3c9 XC5VFX200T

0140d093      6	   0x9 XC3S50
01414093      6	   0x9 XC3S200
0141c093      6	   0x9 XC3S400
01428093      6	   0x9 XC3S1000
01434093      6	   0x9 XC3S1500
01440093      6	   0x9 XC3S2000
01448093      6	   0x9 XC3S4000
01450093      6	   0x9 XC3S5000
	      
01C10093      6    0x9 XC3S100E
01C1A093      6    0x9 XC3S250E
01C22093      6    0x9 XC3S500E
01C2E093      6    0x9 XC3S1200E
01C3A093      6    0x9 XC3S1600E

02210093      6    0x9 XC3S50A
02218093      6    0x9 XC3S200A
02220093      6    0x9 XC3S400A
02228093      6    0x9 XC3S700A
02230093      6    0x9 XC3S1400A

02610093      6    0x9 XC3S50AN
02618093      6    0x9 XC3S200AN
02620093      6    0x9 XC3S400AN
02628093      6    0x9 XC3S700AN
02630093      6    0x9 XC3S1400AN

03840093      6    0x9 XC3SD1800
0384E093      6    0x9 XC3SD3400

01008093      6	   0x9 XC2V40
01010093      6	   0x9 XC2V80
01018093      6	   0x9 XC2V250
01020093      6	   0x9 XC2V500
01028093      6	   0x9 XC2V1000
01030093      6	   0x9 XC2V1500
01038093      6	   0x9 XC2V2000
01040093      6	   0x9 XC2V3000
01050093      6	   0x9 XC2V4000
01060093      6	   0x9 XC2V6000
01070093      6	   0x9 XC2V8000

05044093      8    0xfe XCF01S
05045093      8    0xfe XCF02S
05046093      8    0xfe XCF04S

05057093     16   0xfe XCF08P
05058093     16   0xfe XCF16P
05059093     16   0xfe XCF32P

00608093      5	  0x9 XC2S15
0060c093      5	  0x9 XC2S30
00610093      5	  0x9 XC2S50
00614093      5	  0x9 XC2S100
00618093      5	  0x9 XC2S150
0061c093      5	  0x9 XC2S200
	      
#XC95XL
09602093      8  0xfe XC9536XL
09604093      8  0xfe XC9572XL
09608093      8  0xfe XC95144XL
09616093      8  0xfe XC95288XL
#XC95XV
09702093      8  0xfe XC9536XV
09704093      8  0xfe XC9572XV
09708093      8  0xfe XC95144XV
09716093      8  0xfe XC95288XV

#XC2C
06c1c093      8   0x1 XC2C32_VQ44
06c1d093      8   0x1 XC2C32_PC44/64
06c1b093      8   0x1 XC2C32A_QF32
06d1d093      8   0x1 XC2C32A_PC44
06e1b093      8   0x1 XC2C32A_CP56
06e1c093      8   0x1 XC2C32A_VQ44
06e1d093      8   0x1 XC2C32A_PC44/64

06c5a093      8   0x1 XC2C64-PC44
06c5b093      8   0x1 XC2C64-CP132
06c5c093      8   0x1 XC2C64-VQ100
06c5d093      8   0x1 XC2C64-CP56
06c5e093      8   0x1 XC2C64-VQ44

06e59093      8   0x1 XC2C64A-QF48
06e5a093      8   0x1 XC2C64A-PC44
06e5b093      8   0x1 XC2C64A-CP132
06e5c093      8   0x1 XC2C64A-VQ100
06e5d093      8   0x1 XC2C64A-CP56
06e5e093      8   0x1 XC2C64A-VQ44

06d8a093      8   0x1 XC2C128_VQ100
06d8b093      8   0x1 XC2C128_CP132
06d8c093      8   0x1 XC2C128_TQ144
06d8e093      8   0x1 XC2C128_FT256

06d4a093      8   0x1 XC2C256_VQ100
06d4b093      8   0x1 XC2C256_CP132
06d4c093      8   0x1 XC2C256_TQ144
06d4d093      8   0x1 XC2C256_PQ208
06d4e093      8   0x1 XC2C256_FT256

06d5a093      8   0x1 XC2C384_FG324
06d5b093      8   0x1 XC2C384_CP204
06d5c093      8   0x1 XC2C384_TQ144
06d5d093      8   0x1 XC2C384_PQ208
06d5e093      8   0x1 XC2C384_FT256

06d7a093      8   0x1 XC2C512_FG324
06d7c093      8   0x1 XC2C512_PQ208
06d7e093      8   0x1 XC2C512_FT256

#unsupported
#Virtex2
01020093      6     5 XC2V500
#XC95
09502093      8  0xfd XC9536
09504093      8  0xfd XC9572
09506093      8  0xfd XC95108
09508093      8  0xfd XC95144
09512093      8  0xfd XC95216
09516093      8  0xfd XC95288
#XC18
05024093      8  0xfd XC18V01
05025093      8  0xfd XC18V02
05026093      8  0xfd XC18V04
05023093      8  0xfd XC18V512

##Atmel
#list should not care for the version part
0978203f      4   0x1 AT90USB
0958103f      4   0x1 AT90CAN32
0968103f      4   0x1 AT90CAN64
0978103f      4	  0x1 AT90CAN128
0970403f      4	  0x1 ATmega1281
0970303f      4	  0x1 ATmega1280
0970203f      4	  0x1 ATmega128
0960803f      4   0x1 ATMEGA640
0960603f      4   0x1 ATMEGA6450
0960503f      4   0x1 ATMEGA645
0960403f      4   0x1 ATMEGA6490
0960303f      4   0x1 ATMEGA649
0960a03f      4   0x1 ATMEGA644p
0960903f      4   0x1 ATMEGA644
0960603f      4   0x1 ATMEGA650
0960203f      4	  0x1 ATmega64
0950103f      4	  0x1 ATmega323
0950203f      4	  0x1 ATmega32
0940a03f      4	  0x1 ATmega164p
0940703f      4	  0x1 ATmega165(p)
0940403f      4	  0x1 ATmega162
0940503f      4	  0x1 ATmega169(p)
0940303f      4	  0x1 ATmega16
0940403f      4	  0x1 ATmega162
0940503f      4	  0x1 ATmega169

0964203f      4   0x3 ATxmega64A3
0964403f      4   0x3 ATxmega96A3
0964e03f      4   0x3 ATxmega64A1
0964c03f      4   0x3 ATxmega64A3R
0964d03f      4   0x3 ATxmega96A3R
0965003f      4   0x3 ATxmega96A1
0974a03f      4   0x3 ATxmega128AR
0974c03f      4   0x3 ATxmega128A
0984203f      4   0x3 ATxmega256A3
0984303f      4   0x3 ATxmega256A3B

05b1703f      3     0 AT91SAM7X256
#AVR32
01e8203f     5   0x1 AT32AP7000

#STM 
06410041     5   0x1 STM32L1_Med_density
06411041     5   0x1 STM32F2
06412041     5   0x1 STM32F1_Low_density
06414041     5   0x1 STM32F1_High_density
06418041     5   0x1 STM32F1_Connectivity_line
06420041     5   0x1 STM32F1_Low_Med_density_value
06428041     5   0x1 STM32F1_High_density_value
06430041     5   0x1 STM32F1_XL_density
06413041     5   0x1 STM32F4

#ARM Debug
3BA00477     4   0xe ARM_Cortex-M3_r1p1-01rel0
4BA00477     4   0xe ARM-Cortex-M4F_r0p1

#Manufacturer list
00000093        99  0 Xilinx_Unknown
0000003f	99  0 Atmel_Unknown

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>. -v is for verbose output. 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:

XC3SPROG (c) 2004-2011 xc3sprog project $Rev: 646 $ OS: Windows
Free software: If you contribute nothing, expect nothing!
Feedback on success/failure/enhancement requests:
	http://sourceforge.net/mail/?group_id=170565 
Check Sourceforge for updates:
	http://sourceforge.net/projects/xc3sprog/develop

usage:	xc3sprog -c cable [options] <file0spec> <file1spec> ...
	filespec is filename:action:offset:style:length
	action on of 'w|W|v|r|R'
	w: erase whole area, write and verify
	W: Write with auto-sector erase and verify
	v: Verify device against filename
	r: Read from device,write to file, don't overwrite existing file
	R: Read from device and write to file, overwrite existing file
	Default action is 'w'

	Default offset is 0

	style: One of BIT|BIN|MCS|IHEX|HEX
	BIT: Xilinc .bit format
	BIN: Binary format
	MCS: XILINX Prom format
	IHEX: INTEL Hex format (= MCS with bits reversed)
	HEX:  Hex dump format
	Default for FPGA|SPI|XCF is BIT
	Default for CPLD is JED
	Default for XMEGA is IHEX
	Default length is whole device

Possible options:
   -p val[,val...]  Use device at JTAG Chain position <val>.
             Default (0) is device connected to JTAG Adapter TDO.
   -e        Erase whole device.
   -h        Print this help.
   -I[file]  Work on connected SPI Flash (ISF Mode),
             after loading 'bscan_spi' bitfile if given.
   -j        Detect JTAG chain, nothing else (default action).
   -l        Program lockbits if defined in fusefile.
   -m <dir>  Directory with XC2C mapfiles.
   -R        Try to reconfigure device(No other action!).
   -T val    Test chain 'val' times (0 = forever) or 10000 times default.
   -J val    Run at max with given JTAG Frequency, 0(default) means max. Rate of device
             Only used for FTDI cables for now
   -D        Dump internal devlist and cablelist to files
             In ISF Mode, test the SPI connection.
   -v        Verbose output.

Programmer specific options:
   -d        (pp only     ) Parallel port device.
   -s num    (usb devices only) Serial number string.
   -L        (ftdi only       ) Don't use LibUSB.

Device specific options:
   -E file   (AVR only) EEPROM file.
   -F file   (AVR only) File with fuse bits.









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!