We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hello Guys,
I am working on USB CDC application. I am using Windows XP and usbser.sys driver at host side. I am trying to run a loopback in which host initiated a write of 64K to USB device over BULK OUT Endpoint and then read it back over BULK IN Endpoint. This loop should be able to run indefinitely.
Now the problem is after some time, HOST stops sending IN token to device. hence device stop sending data over IN Endpoint. There is no ERR or STALL messages are being sent by either device. HOST just stops sending IN token to device.
I am not seeing this problem for small packet size like 512 bytes, 1K bytes. For these packet size loopback runs for a long time.
Kindly help me if anyone has any clue. I have read so many forum but didn't get the clue for this issue. Any help is highly appreciated.
Regards, Gaurav
Hmmm.. Sound like bulk IN error case.
Windows CDC driver, usbser.sys, silently stops bulk IN transactions on error. It doesn't do any error recovery, like reset_pipe. For the details, visit to this post
CDC - stalled bulk IN www.microchip.com/.../m538194.aspx
Noise on USB line is often the cause of this error. But this error is also caused when device drops bulk IN endpoint into disabled.
If you see this trouble randomly, noise may be the culprit. But if it occurs regularly, disabled bulk IN EP may be the cause.
Tsuneo
Hi Tsuneo,
i am seeing that this issue is coming for every test case. I checked in the analyzer, only the expected packets are seen for the device. Does it means NO noise?
How can I detect that device has disabled a specific IN endpoint? I checked, but this information is not provided in any USB registers. What could be the reason for device to disable the Bulk IN end points?
Sorry for asking you too many questions. I am bit new to USB stuff.
Thanks, Gaurav
Is there any driver which I can use instead of Usbser.sys for USB CDC?
Best Regards, Gaurav
Maybe try it with Linux or with Mac OS?