- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello I have been looking for a very simple programming circuit for cyclone III FPGA's for the past 6 months or so, and have not been able to find one...then the next thing I know bemicro came out with their usb stick...I am in the process of getting one, but I noticed they do not provide complete documentation for the blaster interface which was a bummer. I was hoping the reference design would come with hardware docs so I could expand on their design. I was wondering if altera has a recommended version similar to the bemicro one so that after I get some code going I can add some parts that I want to use to a board and have a quick easy way to debug my project. I also have the DE-270 board...but the blaster interface on that board is huge, so I do not want to use that. I was also hoping for recommended flash setup for independent use. Let me know if this is the right place to post this...any help is appreciated thanks.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
there a serveral ways to connect your fpga board to your pc to test and debug your application.
1. USB Blaster this is a very common way and interfaces between USB and JTAG, but this requires an CPLD with some logic (the sources can be found) and the USB IC 2. Ethernet Blaster like the USB Blaster but with Ethernet Interface to your pc, unfostunately not faster than the USB Blaster 3. ByteBlaster This Interface is between your LPT Port of your PC and the JTAG connector of your target PCB. a very simple and easy interface, just one simple latch and a few resistor. but this is a slow interface compared to the others. the schematic of the byteblaster is available via altera web site. all these 3 type work with the altera development tools and the target fpga. if jtag speed is not the main task, but an easy logic is, i would go for the byteblaster. as i had done this lots of times until USB blaster got cheaper :-) you are correct, the bemicro is badly documented. i too have one and the i still haven't found more information about the usb implementation they have used. so bemicro is nice to start with but designing the first own simple pcb with a fpga is also easy. Cyclone III has some little pitfalls to take care about (for example if Vio is 3,3V). what would be the minimum requirements for your board to start with ?- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have seen the external byte blasters I was just hoping to just put everything on the board like the bemicro so that I don't have to carry around a programmer to program it. Plus I usually do a lot of debugging, sometimes in different places, and I don't like carrying all of the extra stuff around. I would just like it to all be on one board...I would use the expansion connector but there are some surface mount parts, so if I have to make a board anyways, I would rather put it all on one board. I would be interested to know if a custom interface was made for the Bemicro or if it uses the normal altera interface, I assume they did something special because it requires some special drivers but I am not sure...anyways as far as the project I was hoping to interface it to a small camera sensor and make a little usb camera stick...ie I don't want it to be huge..I would like to use it for robotic vision in the future
Edit: removed useless comments :/ I am also surprised to find no cyclone series with a built in block for programming...considering that the fpga can emulate basically anything you would think they would add a programming "block" so that you could just hook up a single usb chip to interface to it...but that is just me. Anyways any help is appreciated thanks.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I really just want to be able to add a usb chip and an ee-prom to the board with the cyclone and be able to program the device and run it without being connected to the computer. Jtag would be nice but that is not at the top of the list. I guess I would like to be able to have some sort of high speed usb interface to the computer but serial would probably be fast enough.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
with jtag you would have a big freedom
what about cloning that what has been done on the bemicro, if is for your own board ... just copy the schematic part and with the usb tools from ftdi you can read the bemicro and clone those informatio to your own device, so the bemicro driver "thinks" there is a bemicro ... so this is just 1 usb chip- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I don't have the bemicro schematics. What kind of JTAG interface do they use? Is it basically a FT2232 connected directly to the JTAG pins, similar to the FTDI JTAG design example? If so, it would offer a nice option to build a more simple JTAG adapter using the bemicro driver with Quartus.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Here are my thoughts on the subject:
1 - I believe the FTDI chip on the BeMicro gets all of its startup information from the little microchip EEPROM on the board. You could just copy the contents of that EEPROM and lay down a circuit with the FTDI chip identical to the BeMicro board. 2 - See if these help: http://www.ixo.de/info/usb_jtag/ http://openocd.berlios.de/web/ 3 - One of our software guys here wrote his own little programmer for a cyclone III using the FTDI chip. He doesn't use JTAG mode though and it's not compatible with the Altera programming tools. He just basically bit-bangs the serial programming pins on the Cyclone III with the FTDI chip. It's actually significantly faster than JTAG mode. Jake- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I would like to do that but the bemicro schematic has not been released, and there are no app notes for the interface. I was thinking that since it was a reference design they would release the schematics...like the people that make the de2-70 did, but that is not the case. If anyone finds any info on the schematics let me know I would definitely like to use the same interface. It would be nice if arrow and/or altera had some sort of docs or explanation for this interface, this is basically all I would want.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- I believe the FTDI chip on the BeMicro gets all of its startup information from the little microchip EEPROM on the board. --- Quote End --- Yes, that can be expected. It's the same with USB Blaster. It's clear, that FT2232 can be used as a JTAG adapter without additional logic (except for the configuration EEPROM). I wanted to know from someone, who owns the bemicro, if it's done there this way. The first question is about the exact FTDI chip type. I only have the bemicro manual, and I can't clearly see from the assembly drawing if there's any PLD chip that could be possibly work as additional JTAG glue logic. Perhaps someone can share a high resolution photo of the board to identify the assembled parts.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Looks like they have some legal stuff pertaining to using the software....
By installing the software onto your PC you are bound to the license agreement of the Arrow USB-Blaster software. The complete license agreement can be found in chapter 5, License Agreement on page 7. This license agreement, in short, allows you to use the software only in conjunction with Altera FPGA purchased or obtained in any other legal way from Arrow or a subsidiary of Arrow. So if I used their design and bought the fpga that I was using from them I guess I could make a board and use their software...correct me if I am wrong here.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
FVM,
There is no CPLD on the BeMicro. When you plug the BeMicro into the PC, it basically shows up as an "Arrow USB-Blaster". It looks and behaves just like a USB-Blaster cable would and the Altera software appears not to distinguish between the two. My guess is that they've written the software driver on the PC to do the work that the MAX CPLD did on other development boards. I assume they are using the FTDI chip in JTAG mode but the driver is providing that interface layer between the Altera world and JTAG. Jake- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
O.K., that basically answers my question. Functionally, the FTDI Multi-Protocol Synchronous Serial Engine (MPSSE) operation is very similar to USB Blaster operation, except for a higher repeat count with MPSSE and more compact commands with USB Blaster. But I expect, that the throughput isn't much diferent, because both are using a 6 MHz TCK. Also USB Blaster has additional commands to send AS programming data, this wouldn't work with an FTDI chip without changing the hardware connection.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Anybody know if they might release the design for people to use. From the looks of the license agreement they are limiting it a good bit.
If this is not going to happen, is anybody aware of something similar produced by Altera? I must say that I like this interface technique much better, due to board space constraints.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, taking the license agreement strictly, the usage of the Arrow-USB-Blaster driver and design is restricted to Altera FPGA supplied by Arrow.
I assume, that Arrow is distributing Altera devices at regular conditions, so you may want to accept the agreement. I see a problematic point however: The driver is basically using a software technology provided by FTDI. You could design a similar driver yourself, if you had the interface specification for the Quartus JTAG server hardware dll. Altera should be interested to provide a simple and inexpensive programming option for their FPGA. So they should either convince Arrow to release the driver and design to all Altera customers, or disclose the interface information. Altera uses the more complicated CPLD based technique for USB Blaster, because it was developed before the FTDI MPSSE chips have been available, I think.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Well hopefully something like this will be released soon, it would be nice if someone from altera and/or arrow would comment so that we would know if there is to be any future such developments or if we are still on our own for this type thing, but I don't really know how to go about asking besides posting on the forum like this.
I don't mind buying the chips from arrow but I still don't have the complete specs for the programmer so at this point it is not of any consequence... Hopefully this thing is released soon. I feel a bit uneasy reverse engineering it without asking. I would rather just get some sort of official ruling on the programmer.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
As a short update, I verified that a FT2232 can be used with Arrow-USB-Blaster driver and configuration without additional hardware. It uses the same JTAG pin assignment as the FTDI JTAG tool (TCK = AD0, TDI = AD1, TDO = AD2, TMS = AD3).
To drive usual pull-up and pull-down resistors, the "High Current I/O's" option must be enabled in the PORT_A configuration. (It can be set in FTDI FT_PROG tool when writing the EEPROM configuration). This makes me think, that BeMicro uses additional buffers or pull-up and pull-down resistors of higher resistance. Also, the FT2232 I/O operation isn't specified for VCCIO below 3 V. I didn't check, if it possibly works at 2.5V as well. Furthermore, TCK is known to be susceptible to crosstalk from other fast digital signals, an unsuitable driver impedance can also cause ringing TCK edges and JTAG failure. So a TCK driver may be recommended in some applications. The Arrow USB Blaster uses a TCK of 6 MHz, which is the maximum clock frequency in FTDI MPSSE mode. The overall operation is slower than a standard USB Blaster. I got about 50 - 100 % longer programming times in my test. This particularly matters in time consuming flash programming actions. All tests have been performed with Quartus Programmer. I wonder, if the performance differences are caused by ineffective programming or real hardware and FTDI driver properties. But I think, it's an interesting tool anyway.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Having yanked apart a couple of dead USB blasters, and Terasic blasters (which are equivalent), it's a shame Altera won't release the firmware in the CPLD so you could implement your own 'blaster' on boards. I'm assuming Terasic licensed the code and/or firmware file for their boards, since they can be treated identically as real USB blasters. This would be nice because I often find myself using 'instrumentation ram' in designs, and using the in-system memory editor during initial development to get data out of the FPGA. (before software is ready) I just tie the single-port (with instrumentation enabled) block ram modules to the internal data bus, and let it act as a mirror.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The full schematic for the usb blaster ;) "can be found" :rolleyes: online as a single sided pdf as well as a single verilog file that contains all the logic inside the EPM7064AETC44. but it is a bit tricky to implement everything as you also need to know how the ftdi needs to be programmed properly.
Around 2-3 years ago we had all kind of jtag blasters from different companies to compare them. our software guys were badly disapointed about the jtag speed as the application is several MB in size and digged around a bit as we "heared" at one of the traid fairs that the speed would be increased if we would buy some fs2 license. if that is true and the target as well as the enviroment stays the same, then this must be some kind of configuration switch. at the end they now use a script that calls this@ %SOPC_KIT_NIOS2%\bin\nios2-gdb-server-fs2.exe --tcpport=2342 --connect-reset=1 --page-cache=0 --verbosity=1
and the download as well as the gdb debugging was increased up to factor 2 as they could compared with this and with the normal way the time for download and debug.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
A short update to "how FT2232 connects to Cyclone III on BeMicro"
BeMicro uses no additional JTAG buffers between FT2232 and FPGA, but a 10k pull-down resistor at TCK (and 10 k pull-up anyway). Furthermore it has 4052 muxes for the four JTAG lines to utilize it for PS configuration and apparently a user connection to FPGA alternatively. But I don't see, if or how these options are supported by the software driver. They could be used through FTDI d2xx driver, however. In addition, NCONFIG, NSTATUS and CONFIG_DONE are connected to FT2232 pins. So all-in-all, as a minimal solution, a FT2232 can act as configuration interface with no additional glue logic.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi everyone,
I figured I'd reply despite this thread being quiet for some time. I'm interested in creating a direct microUSB to FPGA JTAG connection using the FT2232 on a Cyclone IV-based board I'm designing. I'd like it to appear as a USB blaster and be compatible with the Quartus programming software. Programming speed is not a concern of mine. Based on FvM's notes in the previous posts, this sounds pretty doable. I know there's no schematic available showing how to wire this up, but would it be possible for someone to draw up a quick block diagram with connections, pull-ups, etc just to make sure I'm wiring this correctly? I plan to use either an EPCQ 16Mbit or 32Mbit PROM running in AS x1 mode along with my EP4CGX30CF23C7N FPGA running the serial flash loader (SFL). Any help would be appreciated :-) Thanks! Matt- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hey Matt,
The "problem" with using an FT2232 is that its not a "standard" USB-Blaster device, i.e., Quartus does not ship with drivers to support *any* USB-Blaster based on an FT2232 device. If you are going to create a USB-Blaster clone, then you can use an FT245B or FT245R, or you can use a microcontroller. The "classic" reference for a USB-Blaster clone is Kawk's (Kolja Waschk's) page http://ixo-jtag.sourceforge.net/ Cheers, Dave
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page