FTDI Community

General Category => Discussion - Hardware => Topic started by: Chipper on September 17, 2019, 09:12:21 PM

Title: FT601 FT245 mode: small IN transfers
Post by: Chipper on September 17, 2019, 09:12:21 PM
Hi!

I have an FT601 device in FT245 FIFO mode connected to an FPGA. On the host side, I'm running an application based on libftd3xx, i.e. data transfer via FT_ReadPipeEx / FT_WritePipeEx. What I observe is that OUT transfers happen immediately, whatever the size of the transfer. For IN transfers, however, I can only read data, after the FPGA has sent 4 KiB.

I tried the following with a loopback configuration in the FPGA:
send 1 KiB => FT_ReadPipeEx(2 KiB buffer) returns no data and status 19.
send 1 KiB => FT_ReadPipeEx(2 KiB buffer) returns no data and status 19.
send 1 KiB => FT_ReadPipeEx(2 KiB buffer) returns no data and status 19.
send 1 KiB => FT_ReadPipeEx(2 KiB buffer) returns 2 times 2 KiB.

I put data counters in the FPGA that I can read out via a side channel and I see that all 1 KiB chunks are immediately written to the FTDI. So I conclude that either the FT601 or libftd3xx buffer the data until 4 KiB are received, however long it takes (I waited for several seconds).

In my application, I am using the USB also for control information, where the IN data can be as small as one word. What do I have to do to receive these data immediately?

Thanks. Chipper.
Title: Re: FT601 FT245 mode: small IN transfers
Post by: FTDI Community on September 18, 2019, 02:37:00 PM
Hello,

Please can you contact email support (support1@ftdichip.com) with a screenshot of the settings of your chip as seen in the FT60x Chip Configuration Programmer.

Regards,
FTDI Community