Fail to transfer larger number of bytes on some computers. | Cypress Semiconductor
Fail to transfer larger number of bytes on some computers.
I started debugging a problem I was seeing transferring data from our device. We use a bulk IN endpoint to read data from the device that is captured previously and stored in a DRAM. It's a pretty well tested solution and has worked for us for quite a while.
Just lately, we started seeing a transfer error if the amount of data is > ~2M. It happens very occasionally on some computers and other times it's easy to reproduce. On the computers it is easy to reproduce on, they seem to be completely agnostic of which physical device or which driver we're using. That is, I get the same error with an FX2, FX3, the Cypress driver w/ example firmware or our own drivers and our custom firmware.
So for sake of ease to reproduce, you just have to load up the cyfxbulksrcsink firmware on the FX3 dev board, then open the control panel and try to read a few megs of data. Error 997. For me, this happens every time on a Windows 8.1 virtual machine. I have some physical machines with different usb3 cards all running Windows 7.
VIA cards = seems to work pretty reliably (hard to reproduce)
Renesas cards = fairly easy to reproduce
Intel cards = happens all the time.
I'm Linking to a screenshot of the failure. You can see from a USBlyzer trace that I tried to first transfer 8k. = worked. 1M worked. Then 3M = failure with USB_BABBLE at the underlying layer. Again, the exact same thing happens if I'm using an FX2 board, the FX3 board, my own hardware the control panel or whatever driver. So it seems there is definitely a softwware issue at either the OS or maybe the usb3 controller driver level. Anyone have any ideas how to get around it?