Dave,
These are very good comments. I have currently built a GUI that talks to a Cyclone IV device through FT232RL device. I employ the PyUSB module to do so . . . it works pretty seamlessly.
http://bleyer.org/pyusb/ What is interesting is all the business with libusb, etc. In the case of the pyusb link above, this is a wrapper around FTDI's drivers. Overall, however, I would agree with you and would list my "general" criteria for an on board USB solution:
On Board USB / Programming Solution Requirements:
1. sof and .jic file programming required (JTAG plus programming of EPCS Config Flash through jtag indirect configuration)
2. Employment of standard usb "mini" header
3. Appears as usb blaster to quartus (some flexibility here)
4. "Fast" transfer rates
Best, James
--- Quote Start ---
Hi James,
The on-board USB-Blasters are FT245B+MAX II. The BeMicro-SDK uses an FT245R (which has an internal EEPROM).
The schematic is not really that exciting. Its just the FT245R in asynchronous FIFO mode connected to the MAX II :)
I've uploaded the BeMicro-SDK schematic, it shows the USB-Blaster circuit. Not very enlightening is it?
What is more important is the USB-Blaster protocol. That was reverse-engineered and published a while ago by Kawk
http://sourceforge.net/apps/mediawiki/urjtag/index.php?title=cable_altera_usb-blaster Yes, it bugs me too. I'm working on a clone ... when it works, I'll write up a tutorial.
The latest FTDI direct access driver allow you to access a USB-Blaster ... I'll also write that up shortly.
Cheers,
Dave
--- Quote End ---