On Fri, Jun 24, 2011 at 10:43 AM, Xiaofan Chen <[email protected]> wrote: > On Fri, Jun 24, 2011 at 6:51 AM, Caleb Kemere <[email protected]> wrote: >> After getting some personalized consulting from a friend (shoutout for >> his company: www.totalphase.com), and delving into the libusb-1.0 >> code, I think I understand pretty clearly what is required to get >> maximum data rates from the FT2232H. For a situation like mine, where >> I want streaming bulk transfer at 6.5 MB/s without interruption for >> several hours, the main issue which prevents maximum throughput is the >> inefficiencies that are inherent in generating data requests ("URB"s) >> to the kernel USB driver. >> > > Thanks a lot for the detailed analysis. I have forwarded this to the > libusb mailing list and see if the experts there have some comments. > > However, I am not convinced that async API will be worse than the > sync API.
Oops, your point 4 is already using async API and getting the right results. > This thread can be a good reference. > http://libusb.6.n5.nabble.com/libusb-1-0-vs-usbfs2-Some-questions-td6257.html > > The author of libusb-1.0 is Daniel Drake and he wrote the following. > "I think you'll be able to max out the bus with libusb-1.0 as long as you: > > 1. design asynchronously > 2. Always have multiple URBs queued for completion (they will then > usually be queued at the hardware level, so transfers can continue even > if the CPU is running another program) > 3. Call the event handler in timely fashion (you can run a dedicated > event handling thread to be sure of this, but this may not even be > necessary with a tight mainloop)". > For others who are still interested in the thread, check out this libusb mailing list thread. http://libusb.6.n5.nabble.com/Fwd-FT2232H-asynchronous-maximum-data-rates-td4519549.html -- Xiaofan -- libftdi - see http://www.intra2net.com/en/developer/libftdi for details. To unsubscribe send a mail to [email protected]
