I'm using the ASF USB vendor library along with USBpcap (software packet sniffer) to view some data being streamed between by PC and XMEGA device.
The contents of the data is 100% correct, however the timing is very odd!
I am using isochronous transfers with an interval of 1ms and a data packet size of 256 byte.
This is driven by some code that uses libusbK.
If I request 1 packet, the whole transfer will take about 8ms.
If I request 10 packets, the whole transfer will take about 17ms.
If I request 50 packets, the whole transfer will take about 57ms.
If I request 100 packets, the whole transfer will take about 107ms.
Essentially, the total transfer time for my data is 7ms constant + 1ms per isochronous data packet!
(Note: the 7ms constant is occasionally 8ms).
Does anyone know what could be causing this constant offset? I'm fairly certain it's not the PC-side driver, since the delay is measured from the time the host sends out the request.
I'm also fairly certain it's not data processing delay, since the same processing is done every single frame and it's very basic (just 256 increments).
Is this a known issue?