USB IN Endpoint freeze after some time

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

Parents
  • Maybe see this:

    http://www.keil.com/forum/16477/

    search "Tsuneo Chinzei", "1-Mar-2010 16:06 GMT",
    "CDC device driver polls bulk IN endpoint (Polling IN transactions) repeatedly."

    "
    While the bus is not busy, you'll see 30-40 times of IN-NAKs on the bulk IN endpoint in a 1ms USB frame. You have chances to start IN transfer on each IN transaction. But once you finishes the IN transfer (end with short packet), you don't see any IN-NAK until next frame. This behavior makes 1 transfer per 1 frame feature.
    "

    I guess,
    1. HOST is busy.
    2. HOST considers your USB-CDC device is down.

Reply
  • Maybe see this:

    http://www.keil.com/forum/16477/

    search "Tsuneo Chinzei", "1-Mar-2010 16:06 GMT",
    "CDC device driver polls bulk IN endpoint (Polling IN transactions) repeatedly."

    "
    While the bus is not busy, you'll see 30-40 times of IN-NAKs on the bulk IN endpoint in a 1ms USB frame. You have chances to start IN transfer on each IN transaction. But once you finishes the IN transfer (end with short packet), you don't see any IN-NAK until next frame. This behavior makes 1 transfer per 1 frame feature.
    "

    I guess,
    1. HOST is busy.
    2. HOST considers your USB-CDC device is down.

Children
More questions in this forum