Hello,
Are you using the default latency timer?
See
AN232B-04 Data Throughput, Latency and Handshaking which applies to all FTDI devices.
Note that the minimum latency timer for full speed USB devices is 2ms, and for High Speed devices is 1ms.
The default latency timer is 16ms.
The easiest method to use would be through the D2XX Drivers. See the
D2XX Programmer's Guide:
FT_SetLatencyTimer
So the application code would need to set this each time it’s executed.
The other option would be to edit the driver INF files (with custom PIDs), but this breaks driver signing so would have to be resigned by yourself and is a more complex process.
See section 6.3 Setting a Custom Default Latency Timer Value in
AN_107 Advanced Driver Options.
It could also be inherently the way that USB operates.
Data is sent in USB packets which are scheduled and managed by the USB Host.
It’s dependant on a number of factors due to the nature of USB. If there is more USB traffic then the OS and USB have to schedule the communication with each of the USB devices.
It’s highly dependent on the OS and USB Host and is out with our control.
Best Regards,
FTDI Community