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