FTDI 245 FIFO Tutorial with Visual Studio and a Lattice MachXO2 FPGA
ฝัง
- เผยแพร่เมื่อ 23 ก.ค. 2024
- This guide explains how to use the FTDI D2XX driver and library to transfer data via the "FTDI Synchronous 245 FIFO" protocol. I used a PC running Visual Studio 2019 to communicate with a Lattice MachXO2 FPGA. 1GB of data was transferred at a speed of approximately 355Mbps.
I start by showing how to find all of the relevant documentation for the FTDI UM232H development board and the D2XX API. I show example Verilog code for the Lattice MachXO2 FPGA and explain how it works. Then I show how to configure a Visual Studio 2019 project and write the demo software. Finally, I benchmarked the transfer speed, with a result of 355Mbps.
Source code and links to all of the documentation are available on my web site:
www.farrellf.com/projects/soft...
Here are the items I used: (or similar items)
FTDI FT232H development board: amzn.to/2ysNofW
Lattice MachXO2 development board: amzn.to/2ROKR6j
Jumper wires: amzn.to/2VKmEj0
Mini-USB "converters": amzn.to/3bmGQhh
USB hub: amzn.to/3cqgNGb
I am a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for me to earn fees by linking to Amazon.com and affiliated sites. - วิทยาศาสตร์และเทคโนโลยี
One of the best explained coding videos I've seen.
Thank you so much for showing all the details.
Really thoroughly explained. Thank you and congratulations for the great tutorial!
Thank you so much for this detailed and useful video. You have made my covid-19 lock down exciting!!!
Dude. You help me a lot. Thanks for your amazing video!
Very good and instructive tutorial. Great tips... Thank you.
Well done! This helped me a lot.
You are a god. Thanks for this amazing content!
Very good!
Excellent
Truly a great tutorial! One thing that would be useful is a schematic of the hookup to the FT Module. I am having a bit of trouble translating the ACBUS0-ACBUS6 pin names into ins and outs as shown on the Lattice source code doc. Some are obvious such as read\ = ACBUS2, etc, but signals you documented as TX_full, RX _empty and send_immediately_n are not obvious as to how they map to ACBUS pins. And, I would assume that the ACBUS pin functions do not require any special configuration outside of whats shown in your C++ coding? Thank you!
thank you for your detailed tutorial. just one question on the VM you used and how to enable the USB devices to discoverable in the VM. I am trying to follow thru your tutorial and seems this one is not shown in detail.
If you plug in a USB device while the VM has focus, VMware will ask want you want to do (or may automatically connect it to the VM depending on your settings.)
I can't seem to compile this, is it likely because I'm using VS2017?
What error are you getting?
@@upgrdman I don't really use c++ but it looks like i was using the newest "CDM+v2.12.36.1+WHQL+Certified" h file "CDM v2.12.28 WHQL Certified" seems to work.
@@upgrdman btw nice video.
Can you show how to create a Display which shows RPM ,SPEED, FUEL GAUGE, Trip meter.
ft2232d i2c tutorial please
thanks for the great tutorial, had following issue that i lost around every 510 byte.
made your example for the icoboard with ft323h baseboard see github.com/xeniter/icoboard_yosys_demos/tree/main/baseboard_ft245_counter_demo_losing_bytes
found solution to avoid loosing each 510 byte : "With great FTDI support I have solved problem TXE signal can go HIGH on falling edge of clock and so it must not be checked only on rising edge." at
community.intel.com/t5/Programmable-Devices/FT2232H-245-Synchronous-FIFO-Mode-problem/td-p/111192
fixed version for icoboard is here: github.com/xeniter/icoboard_yosys_demos/tree/main/baseboard_ft245_counter_demo_fixed