source: trunk/FirmwareFX2/readme.txt@ 85

Last change on this file since 85 was 5, checked in by demin, 15 years ago

adapt to latest usb_jtag sources and altera drivers

File size: 3.8 KB
RevLine 
[4]1usb_jtag using Cypress FX2 chip
2===============================
3
[5]4== General information ==
[4]5
[5]6The code in this directory is for Cypress FX2 (e.g. CY7C68013A) and can be
7compiled with the SDCC compiler (I tried version 2.6 as shipped with Ubuntu
86.10). Once I had a version that could be compiled with Keil tools (until early
92007), but switched to SDCC because I usually develop on a Linux host.
[4]10
[5]11No logic beside the FX2 itself and only a few external components are required
12for a basic JTAG adapter. I don't have detailed schematics available; my test
13setup consists of a FX2 on a custom board where it's directly connected to a
14Cyclone FPGA.
15
[4]16 ____________
17 | |
18 | Cypress |
19 USB__| EZ-USB FX2 |__JTAG(TDI,TDO,TCK,TMS)
20 | CY7C68013A |
21 |____________|
22 __|__________
23 | |
24 | 24 MHz XTAL |
25 |_____________|
26
27
[5]28Similar boards are available from fpga4fun.com - the boards named "Saxo-L" and
29"Xylo-EM" are pre-wired for use with an adapted version of my code, while
30"Saxo" and "Xylo" can be used after soldering 4 extra wires:
[4]31
32 http://www.fpga4fun.com/board_Xylo.html
33
[5]34There's a discussion thread in the fpga4fun forum about this firmware:
[4]35
[5]36 http://www.fpga4fun.com/forum/viewtopic.php?t=483
37
38
39== Adapting the code to your hardware ==
40
[4]41As is, the code assumes the following pin assignment:
42
43 Port C.0: TDI
44 Port C.1: TDO
45 Port C.2: TCK
46 Port C.3: TMS
47
[5]48Other assignments are possible. If you have your signals connected to
49bit-addressable I/O pins (port A,B,C or D), I suggest you make a copy of
50hw_basic.c and adapt the definitions and ProgIO_Init() in it to your needs.
51The file hw_saxo_l is even simpler to adapt if you want only JTAG and no AS/PS
52mode. If your signals are not on bit-addressable I/Os (that is, you're using
53port E), you could base your adaptation on the slower hw_xpcu_i.c. You may
54specify the name of your adapted hardware-specific file when "make"ing, e.g.:
[4]55
[5]56 make HARDWARE=hw_saxo_l
[4]57
58
[5]59The USB identification data (vendor/product ID, strings, ...) can be modified
60in dscr.a51. The firmware emulates the 128 byte EEPROM that usually holds
61configuration data for the FT245 and which can be read from the host; its
62content (including checksum) is computed from the data in dscr.a51 as well.
[4]63
[5]64The WAKEUP pin should be high for the re-numeration to work reliably (thanks
65Jean/fpga4fun!).
66
67
68== Using it with Xilinx JTAG cable ==
69
70There is code to support running in the "Xilinx Platform Cable USB". If you
71select HARDWARE=hw_xpcu_i or hw_xpcu_x at the top of the Makefile, a firmware
72for the XPCU will be built. I've tested this only with unmodified CPLD version
7318 (0x12) on a Spartan-3E starter kit, as it was programmed by my WebPack 8.2i.
74The code needs optimization; yet it is merely a proof of concept.
75Compile for the XPCU with e.g. "make HARDWARE=hw_xpcu_x".
76
[4]77 hw_xpcu_i: Access "internal" chain (the XPCU CPLD, IC3, itself)
78 hw_xpcu_x: Access "external" chain (the Spartan 3E, PROM, etc.)
79
[5]80
81== History ==
82
83Changes since previous release on 2007-02-15:
84 - Jean Nicolle contributed hw_saxo_l.c for the FX2 boards from fpga4fun.com
85 - fx2/Makefile fixed to build correct libfx2.lib even under Windows.
86
[4]87Changes since previous release on 2007-01-28:
88 - Initial suppport for running on Xilinx XPCU.
89 - New FX2 code, based on USRP2 from the GNU Radio Project;
90 - Firmware can now be compiled using SDCC 2.6. No more Keil support.
[5]91 - EEPROM content is automatically computed from dscr.a51, including checksum.
[4]92
93Changes since initial release on 2006-04-23:
94 - added this readme.txt
[5]95 - reorganized my project folder: diff now created from Subversion repository
[4]96 - stripped *.dist extension from eeprom.c and dscr.a51
97 - added unique proper product and vendor ID (thanks to Antti Lukats!)
98 - fixed checksum in eeprom.c
99 - added comments about AS/PS mode pins in usbjtag.c
100
101
102
103
Note: See TracBrowser for help on using the repository browser.