This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

WinUSB IN packet does not transfer

I'm developing a WinUSB device using a SAM9G15 processor. I've been able to enumerate the device, but when I try initiate a transfer the TX complete flag never goes high. My IN endpoint (Endpoint 1) shows enabled in the IEN register. TXRDY in the EPTSTA register is clear, The FIFO is loaded, then TXRDY in EPTSETSTA is set high. At this point I wait for the TX_COMPLT in the EPTSTA register to go high, but it never does. The Endpoint descriptor for EP1 is configured as an interrupt endpoint. When configured for an interrupt transfer, should the WinUSB driver be sending polling messages once the device is enumerated? Once TXRDY is set high, the device is supposed to send the payload once a poll is received. Should I be expecting a poll to be sent without initiating anything from a host application?

Parents
  • > When configured for an interrupt transfer, should the WinUSB driver be sending polling messages once the device is enumerated?

    No. Your PC application should call WinUsb_ReadPipe on the interrupt endpoint for every transfer; when a transfer by a WinUsb_ReadPipe call finishes, your app should call WinUsb_ReadPipe again to get the next transfer.

    Tsuneo

Reply
  • > When configured for an interrupt transfer, should the WinUSB driver be sending polling messages once the device is enumerated?

    No. Your PC application should call WinUsb_ReadPipe on the interrupt endpoint for every transfer; when a transfer by a WinUsb_ReadPipe call finishes, your app should call WinUsb_ReadPipe again to get the next transfer.

    Tsuneo

Children
No data