libftdi Archives

Subject: Re: FT245R transfer rates

From: Xiaofan Chen <xiaofanc@xxxxxxxxx>
To: libftdi@xxxxxxxxxxxxxxxxxxxxxxx
Date: Mon, 22 Feb 2010 20:37:13 +0800
On Mon, Feb 22, 2010 at 6:27 PM, Jan Wilmans <janwilmans@xxxxxxxxx> wrote:

> What I was wondering: the FT245R datasheet claims (quote:) "Data transfer
> rates up to 1Mbyte / second."
>
> But, since it is a fullspeed device (1ms frames) and it has 128 byte receive
> buffer, I figure the maximum tranfer rate is limited to 1000x 128 bytes per
> second? (equal 125Kb/s)
>
> In other words: the receive buffer can be filled with at most 128 bytes
> every 1ms...
>
> How is the 1 MB/s even theoretically possible with a 128 byte receive

I have not read into the details of FT245R but here is my answer to
your question based on my understanding of USB. Sorry I have
not yet read the datasheet.

For bulk transfer (FTDI device uses bulk transfer in most cases), you
can have multiple packets (up to 64Bytes for full speed bulk endpoint)
per transfer, actually up to 19 for full speed USB. So the theoretically
the maximum transfer rate for full speed USB bulk transfer is
19x64=1216 Bytes/ms.

FT245R's receive buffer is double the max packet size (64x2=128) and
the transmit buffer is quad the max packet size (64x4=256). So it can
approach the maximum transfer rate limit of Full Speed Bulk Endpoint.
The driver of course need to be able to sustaining the data rate. So
FTDI has its own driver and not use Windows' lousy usbser.sys driver.

-- 
Xiaofan http://mcuee.blogspot.com

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

Current Thread