Forum Discussion
Fast & Large block data transfer over USB - DE1/DE2 ?
Hi I have a DE1 fpga module, which has a single USB port that seems to be dedicated to programming. Is it possible to use it to do fast, large block data transfers over the USB ?
I see quite a bit of discussion here in a similar vein, but do not see anything conclusive. I see the USB is connected to an FTDI FT245BL - this should be capable of 1M Byte / Sec, using their D2XX Drivers. It is then connected to an Altera MAX chip. Previous fpga modules that I have used with FTDI chips have been able to use the USB port for both programming and for data transfer. Or am I better to junk the DE1 board and buy a DE2 which I see has a second USB port ? cheers, Beau54 Replies
- Altera_Forum
Honored Contributor
OK I can now halt the execution by using ft_setbitmode on port B, but I do not fully know what the correct setting for all the pins should be, and can not re-start execution.
- Altera_Forum
Honored Contributor
--- Quote Start --- The crucial commection for the reset is from the FT2232H pin 46 : BDBUS7, again labled Data3. --- Quote End --- If the FT2232H is being used to configure the Cyclone using passive serial communications with a 1-bit data width, then DATA[0] is the programming signal, and DATA[7:1] are available as control signals. If the FT2232H is being used to program the Cyclone using Fast passive parallel (FPP), then all DATA[7:0] bits are used during programming. Once the FPGA enters user-mode, the DATA pins can be configured as user-I/O. If this is the case in the Morph-IC-II, then the 8-bit bus from the FT2232 is a user-bus once the device is configured. Post the schematic and I'll look. Cheers, Dave - Altera_Forum
Honored Contributor
- Altera_Forum
Honored Contributor
--- Quote Start --- Morphic II Schematic attached. --- Quote End --- DATA3 is just a data connection between the FT2232 and the FPGA. The FPGA can be configured to use it as a DEV_CLR signal, which is basically a reset, without actually having a reset in your top-level design entity. Personally, I'd configure the pin to be a general purpose I/O and treat it as an external reset control in the design. --- Quote Start --- One of the thing I am not clear about, is how to use the ftdi command ft_setbitmode. --- Quote End --- Set bitmode is used to change between MPSSE and regular modes. Check out the attached programmer for the Morph-IC. Cheers, Dave - Altera_Forum
Honored Contributor
Thanks indeed, reading through it .... see where bit 7 is used as nReset.
Also just trying to use the USB Blaster to do a SignalTap analysis of my design in the Morphic II. First time I have had a USB Blaster to be able to do this. Could be very useful .... - Altera_Forum
Honored Contributor
--- Quote Start --- Thanks indeed, reading through it .... see where bit 7 is used as nReset. --- Quote End --- Right, that is what I wanted you to understand. However, there's two ways this signal can act as reset; it can be configured as DEV_CLRn in your Quartus project setting, and it will keep your design in reset if its held low, or you can configure it as a rstN input to your top-level design, and choose to ignore it or use it. --- Quote Start --- Also just trying to use the USB Blaster to do a SignalTap analysis of my design in the Morphic II. First time I have had a USB Blaster to be able to do this. Could be very useful .... --- Quote End --- SignalTapII is extremely useful. Learn to use it. Also learn to use Modelsim. Cheers, Dave - Altera_Forum
Honored Contributor
On the Morphic II the default reset seems to be a positive logic reset, I have to invert it as the logic I am importing my code from, an EZC1USB module, was a negative logic reset.
-- nRESET: in std_logic; -- FPGA reset, negative on-board reset, EZC1USB HW_RESET: in std_logic; -- FPGA reset, positive on-board reset, Morphic II begin nRESET <= not HW_RESET; So indeed I can ignore it if I choose - never thought of that - though I do use it extensively to reset things before they run. How are your further thoughts on using the USB Blaster for data I/O coming on ? - Altera_Forum
Honored Contributor
--- Quote Start --- On the Morphic II the default reset seems to be a positive logic reset, I have to invert it as the logic I am importing my code from, an EZC1USB module, was a negative logic reset. --- Quote End --- Its just a pin, so its up to you to decide what it means :) --- Quote Start --- So indeed I can ignore it if I choose - never thought of that - though I do use it extensively to reset things before they run. --- Quote End --- I just meant ignore it while debugging. Resets are generally good to use. However, you should run them through a dual-DFF synchronizer prior to use, so that the synchronized reset deasserts synchronously. --- Quote Start --- How are your further thoughts on using the USB Blaster for data I/O coming on ? --- Quote End --- I haven't had a chance to work on it. I've been working on some TimeQuest timing analysis. Cheers, Dave - Altera_Forum
Honored Contributor
Large & fast USB data transfer - well I have got no further with the DE0 and DE1 interfaces, but thought you might like to see what I have been up to using the MorphicII fpga module - see these two YouTube videos :
http://www.youtube.com/user/labtoolsinstruments I have a new transient capture/averager module just back from assembly and under test ... - Altera_Forum
Honored Contributor
--- Quote Start --- thought you might like to see what I have been up to using the MorphicII fpga module - see these two YouTube videos : http://www.youtube.com/user/labtoolsinstruments --- Quote End --- Cool, thanks for sharing. I watched the Morph-IC-II video, but you didn't say anything about the actual transfer rates though. What does SignalTap II show in the FPGA fabric? Are all samples showing up over the USB bus into the FTDI FIFOs in a single-shot? Here's a tutorial on using the USB-Blaster directly. Its slower, since it only has a serial connection to the FPGA, but it should be pretty easy to modify for use on the DE0 and DE1. http://www.alterawiki.com/wiki/using_the_usb-blaster_as_an_sopc/qsys_avalon-mm_master_tutorial Cheers, Dave