Has anybody experienced any problems with usb 2.0 isochronous transfers using a laptop with usb 3.0?
We have a usb 2.0 device with a kernel mode device driver that uses isochronous transfers. The isochronous transfers have been working fine on a variety of laptops for the last 7 years. We?ve recently updated the driver to support Windows 7 (32 and 64 bit), and it?s running with the latest version of the WDK (7600). It?s working fine on a variety of XP, Vista, and Windows 7 systems that have usb 2.0 ports.
We have two test laptops that have usb 3.0 host controllers. Both are running 64 bit Windows 7. One is a Sony Viao, which works perfectly. The other is a Lenovo, and on this machine, in my kernel mode driver, I find that I?m ?losing? isochronous data. I?m examining the urbs that contain the isochronous data?they are not showing any errors, but some of the packets I?m expecting are missing.
If I look at the data on a usb analyzer, I see that all the data is in fact being sent across the usb bus. However, the timing of the packets is a little bit off. I should be seeing packets every 125uSec, but around 10% of the time, the interval between microframes is larger than this?falling between 126uSec and around 180uSec. I suspect that this is causing the usb 3.0 host controller to drop some of the data, due to it being an isochronous pipe.
I should also mention that this same laptop also has usb 2.0 ports. If I run our device on those ports, it works perfectly, so the problem seems to be with the usb 3.0 host controller. If I look at the usb analyzer, I see that the timing of the isochronous transfers using the usb 2.0 port is perfect?all the microframes are within 1uSec of being 125uSec apart.
Regarding the isochronous transfers, we are sending either 1 or 2 1024 byte packets of data every microframe. We transfer 150 packets this way, then there is a brief period of empty packets (15 or so microframes), before the next block of 150 packets is sent.
I?ve update the usb 3.0 host controllers to use the latest version of drivers (Renesas version 2.0.34.0). This happens to be the same version that is running on the Sony Vaio, which works fine.
Has anybody else experienced problems with isochronous transfers from a usb 2.0 device using a usb 3.0 host controller?
Thanks,
Jeff