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

近期下载者

相关文件


收藏者