libftdi Archives

Subject: Re: FT2232H asynchronous maximum data rates?

From: Xiaofan Chen <xiaofanc@xxxxxxxxx>
To: libftdi@xxxxxxxxxxxxxxxxxxxxxxx
Date: Fri, 24 Jun 2011 10:43:06 +0800
On Fri, Jun 24, 2011 at 6:51 AM, Caleb Kemere <ckemere@xxxxxxxxx> 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.

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)".


-- 
Xiaofan

--
libftdi - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to libftdi+unsubscribe@xxxxxxxxxxxxxxxxxxxxxxx   

Current Thread