| 1 | usb_jtag using Cypress FX2 chip
|
|---|
| 2 | ===============================
|
|---|
| 3 |
|
|---|
| 4 | The code in this directory is for Cypress FX2 (e.g. CY7C68013A) and can be compiled with
|
|---|
| 5 | the SDCC compiler (I tried version 2.6 as shipped with Ubuntu 6.10). Once I had a version
|
|---|
| 6 | that could be compiled with Keil tools (until early 2007), but switched to SDCC because I
|
|---|
| 7 | usually develop on a Linux host.
|
|---|
| 8 |
|
|---|
| 9 | No logic beside the FX2 itself and only a few external components are required for a basic
|
|---|
| 10 | JTAG adapter. I don't have detailed schematics available; my test setup consists of a FX2
|
|---|
| 11 | on a custom board where it's directly connected to a Cyclone FPGA.
|
|---|
| 12 |
|
|---|
| 13 | ____________
|
|---|
| 14 | | |
|
|---|
| 15 | | Cypress |
|
|---|
| 16 | USB__| EZ-USB FX2 |__JTAG(TDI,TDO,TCK,TMS)
|
|---|
| 17 | | CY7C68013A |
|
|---|
| 18 | |____________|
|
|---|
| 19 | __|__________
|
|---|
| 20 | | |
|
|---|
| 21 | | 24 MHz XTAL |
|
|---|
| 22 | |_____________|
|
|---|
| 23 |
|
|---|
| 24 |
|
|---|
| 25 | Similar eval boards are now available from fpga4fun.com - the boards named
|
|---|
| 26 | "Saxo-L" and "Xylo-EM" are pre-wired for use with an adapted version of my
|
|---|
| 27 | code, while "Saxo" and "Xylo" can be used after soldering 4 extra wires:
|
|---|
| 28 |
|
|---|
| 29 | http://www.fpga4fun.com/board_Xylo.html
|
|---|
| 30 |
|
|---|
| 31 |
|
|---|
| 32 | As is, the code assumes the following pin assignment:
|
|---|
| 33 |
|
|---|
| 34 | Port C.0: TDI
|
|---|
| 35 | Port C.1: TDO
|
|---|
| 36 | Port C.2: TCK
|
|---|
| 37 | Port C.3: TMS
|
|---|
| 38 |
|
|---|
| 39 | Other assignments are possible; you'll have to adapt the definitions in hardware.h and maybe
|
|---|
| 40 | in hardware.c, too.
|
|---|
| 41 |
|
|---|
| 42 | The USB identification data (vendor/product ID, strings, ...) can be modified in dscr.a51. My
|
|---|
| 43 | firmware emulates the 128 byte EEPROM that usually holds configuration data for the FT245 and
|
|---|
| 44 | which can be read from the host; its content is computed from the data in dscr.a51 as well.
|
|---|
| 45 |
|
|---|
| 46 | The WAKEUP pin should be high for the re-numeration to work reliably (thanks Jean/fpga4fun!)
|
|---|
| 47 |
|
|---|
| 48 | From this release on, there is new code to support running in the "Xilinx
|
|---|
| 49 | Platform Cable USB". If you select HARDWARE=hw_xpcu_i or hw_xpcu_x at the top
|
|---|
| 50 | of the Makefile, a firmware for the XPCU will be built. I've tested this only
|
|---|
| 51 | with unmodified CPLD version 18 (0x12) on a Spartan-3E starter kit, as it was
|
|---|
| 52 | programmed by my WebPack 8.2i. The code needs optimization; yet it is merely a
|
|---|
| 53 | proof of concept.
|
|---|
| 54 |
|
|---|
| 55 | hw_xpcu_i: Access "internal" chain (the XPCU CPLD, IC3, itself)
|
|---|
| 56 | hw_xpcu_x: Access "external" chain (the Spartan 3E, PROM, etc.)
|
|---|
| 57 |
|
|---|
| 58 | Changes since previous release on 2007-01-28:
|
|---|
| 59 | - Initial suppport for running on Xilinx XPCU.
|
|---|
| 60 | - New FX2 code, based on USRP2 from the GNU Radio Project;
|
|---|
| 61 | - Firmware can now be compiled using SDCC 2.6. No more Keil support.
|
|---|
| 62 | - EEPROM content is automatically computed from descriptors, including checksum.
|
|---|
| 63 |
|
|---|
| 64 | Changes since initial release on 2006-04-23:
|
|---|
| 65 | - added this readme.txt
|
|---|
| 66 | - reorganized my project folder: diff is now created from Subversion repository
|
|---|
| 67 | - stripped *.dist extension from eeprom.c and dscr.a51
|
|---|
| 68 | - added unique proper product and vendor ID (thanks to Antti Lukats!)
|
|---|
| 69 | - fixed checksum in eeprom.c
|
|---|
| 70 | - added comments about AS/PS mode pins in usbjtag.c
|
|---|
| 71 |
|
|---|
| 72 |
|
|---|
| 73 |
|
|---|
| 74 |
|
|---|