usbblaster
所属分类:单片机开发
开发工具:Others
文件大小:304KB
下载次数:89
上传日期:2008-08-03 12:13:26
上 传 者:
einstein
说明: 只用cy7c68013实现的usbblaster!SDCC编译!
(CY7C68013 achievable only usbblaster! SDCC compiler!)
文件列表:
usbblaster\copying.txt (17990, 2007-01-28)
usbblaster\device\c51\C51.Opt (1688, 2008-07-23)
usbblaster\device\c51\C51.plg (516751, 2008-07-23)
usbblaster\device\c51\C51.Uv2 (2599, 2008-07-23)
usbblaster\device\c51\C51_Uv2.Bak (0, 2008-07-23)
usbblaster\device\c51\delay.lst (5093, 2008-07-23)
usbblaster\device\c51\dscr.a51 (13080, 2007-02-13)
usbblaster\device\c51\eeprom.c (2638, 2007-02-13)
usbblaster\device\c51\eeprom.h (1274, 2007-02-11)
usbblaster\device\c51\eeprom.LST (8974, 2008-07-23)
usbblaster\device\c51\eeprom.OBJ (5777, 2008-07-23)
usbblaster\device\c51\fx2\delay.c (2092, 2007-02-11)
usbblaster\device\c51\fx2\delay.h (1494, 2007-02-11)
usbblaster\device\c51\fx2\FX2REGS1.H (32287, 2008-07-23)
usbblaster\device\c51\fx2\fx2utils.c (1811, 2007-02-11)
usbblaster\device\c51\fx2\fx2utils.h (1410, 2007-02-11)
usbblaster\device\c51\fx2\i2c.c (3049, 2007-02-11)
usbblaster\device\c51\fx2\i2c.h (1571, 2007-02-11)
usbblaster\device\c51\fx2\isr.c (4487, 2007-02-11)
usbblaster\device\c51\fx2\isr.h (4821, 2007-02-11)
usbblaster\device\c51\fx2\Makefile (1440, 2007-02-11)
usbblaster\device\c51\fx2\syncdelay.h (2544, 2007-02-11)
usbblaster\device\c51\fx2\timer.c (1902, 2007-02-11)
usbblaster\device\c51\fx2\timer.h (1482, 2007-02-11)
usbblaster\device\c51\fx2\usb_common.c (8359, 2007-02-11)
usbblaster\device\c51\fx2\usb_common.h (2079, 2007-02-11)
usbblaster\device\c51\fx2\usb_descriptors.h (1954, 2007-02-11)
usbblaster\device\c51\fx2\usb_requests.h (2756, 2007-02-11)
usbblaster\device\c51\fx2 (0, 2008-07-24)
usbblaster\device\c51\fx2utils.lst (48173, 2008-07-23)
usbblaster\device\c51\hardware.h (1597, 2007-02-15)
usbblaster\device\c51\hw_basic.c (9488, 2008-07-23)
usbblaster\device\c51\hw_basic.LST (69740, 2008-07-23)
usbblaster\device\c51\hw_xpcu_i.c (4994, 2007-02-15)
usbblaster\device\c51\hw_xpcu_i.LST (55198, 2008-07-23)
usbblaster\device\c51\hw_xpcu_x.c (5315, 2007-02-15)
usbblaster\device\c51\hw_xpcu_x.LST (90028, 2008-07-23)
usbblaster\device\c51\i2c.lst (53117, 2008-07-23)
usbblaster\device\c51\isr.lst (65250, 2008-07-23)
usbblaster\device\c51\Makefile (2654, 2007-02-15)
... ...
-----------------------------------------------------------------------------
usb_jtag - Variations on the implementation of a USB JTAG adapter.
Copyright (C) 2005-2007 Kolja Waschk, ixo.de
-----------------------------------------------------------------------------
usbj_tag is free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.
usbj_tag is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program as file "copying.txt"; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-----------------------------------------------------------------------------
IMPORTANT: The code and information herein is NOT sufficient to build a
device that can be used exactly like an "Altera USB Blaster". I have only
included code here that is purely my own work or taken from Cypress library
for the FX2 firmware. I do not include any copy of Altera code or data, such as
the content of the EEPROM that configures the USB controller of their product
(containing USB vendor and product ID and some more data). But you need at least
the correct IDs in the EEPROM to make it compatible with their software.
Please do not ask me about such data. The code presented here is interesting
enough even if used without Altera software. If you include support for this
device in your host software, please let me know, so I can mention it in this
README. And please be so kind to make your software compatible enough so it
could make use of an original Altera device as well!
Quartus, SignalTap and USB-Blaster are trademarks of Altera Corporation.
ChipScope is a trademark of Xilinx Inc.
-----------------------------------------------------------------------------
FILES: Beside this README, this archive contains the following files:
- copying.txt: The text of the GNU Public License (GPL).
- device/c51: Firmware for usb_jtag based on Cypress FX2, for SDCC compiler
- device/fx2.old: Alternative, now old and unsupported FX2 firmware, for Keil compiler
- device/cpld: CPLD logic for usb_jtag with FT245BM + CPLD
- host/eecksum: Code to compute a valid checksum for FT245BM EEPROM emulation
- host/devtest: Small utility to do some basic tests with usb_jtag adapter
- host/openocd: Experimental usb_jtag/USB-Blaster driver for OpenOCD
- host/openwince: Experimental usb_jtag/USB-Blaster driver for openwince JTAG
Where appropriate, the directories contain a file "readme.txt" with further
information about purpose, usage and history.
-----------------------------------------------------------------------------
HISTORY: In my company, in 2006 we received first samples of a new hardware
design as a base for upcoming products; two major components of this design
being a Cypress EZ-USB FX2 USB controller and an Altera Cyclone EP1C12 FPGA.
The FX2 implements the USB interface of the product; its first task after
booting is to configure the FPGA. The FPGA configuration data is sent from the
USB host to the FX2 and then via JTAG to the FPGA.
I had the idea to make the FX2 code less specific, i.e. turn it into a
general-purpose JTAG interface and move all the code specific to FPGA
configuration away from the FX2, up to the host PC. While developing a stripped
down FX2 firmware, it occured to me that its function in the end would become
similar to that of the USB JTAG adapter developed by Altera; just direct FPGA
signal control (bit banging) and fast parallel/serial conversion. The Altera
device obviously can't do more, because it consists of just an USB-Parallel
chip (FTDI FT245BM) and a small CPLD that can't do much more than
parallel/serial conversion for single bytes. At that time, I took a look at
the Altera communication mechanisms and decided to write my code so it would
behave similar to their device.
-----------------------------------------------------------------------------
THANKS: After I released the first CPLD and FX2 code, Antti Lukats (xilant.com)
was so kind to reserve an ID for my project, 0x16C0 / 0x06AD. Thanks Antti!
Jean from fpga4fun.com was the first who tried the FX2 code "outside my lab"
and kept trying until he succeeded. Thanks for trying and reporting, Jean!
There is an ongoing discussion at http://www.edaboard.com/ftopic114946.html
with valuable discussion and info from the past. Whenever possible, I check
there for new postings and try to answer questions. Thanks to all members
who contributed (and do so in future) there!
-----------------------------------------------------------------------------
COMMON ISSUES: I received a number of mails from others who used my logic with
varying success. Following are some general tips.
If it works "partially" for you, "sometimes" or "it programs the device, but
the device doesn't work afterwards", your setup maybe isn't suitable for clear
transmission of signals at several MHz. It may still be a critical timing in
the logic, but I'm using it even slightly "overclocked" at 25 MHz and haven't
had any errors since months. So I doubt it's the logic. Try reducing the clock
to the CPLD from 24 MHz to, say, 6 MHz.
When using AS mode with a FPGA connected in parallel with a configuration
device (or similar setup), don't forget to connect nCE and nCS.
Whenever I experienced problems, it was due to wrong connections, bad
pullup/pulldown resistors on the target JTAG interface, or mismatch between
logic levels (3.3/5 V) of CPLD vs. target JTAG interface.
The cable between CPLD and target should not exceed 10 cm in length.
If you want to debug the CPLD logic, you could load jtag_logic into a larger
FPGA and embed SignalTap or ChipScope to watch what's happening.
-----------------------------------------------------------------------------
Kolja Waschk, January 2007
近期下载者:
相关文件:
收藏者: