cancel
Showing results for 
Search instead for 
Did you mean: 

USB Low-Full-High Speed Peripherals

Anonymous
Not applicable

Hi Community,

   

we are using a FX2 controller with a CMOS attached in bulk mode on Windows, mac and linux. In one application we have to use some kind of USB hub between our device and the PC. Due to some noise or other reasons this hub is creating occasionally USB stalls on the bulk endpoint. We can clear the stall condition via the `Reset()` function of the CyAPI.h on Windows. But this seems to re-enumerate the USB device on this port and the application needs to reconnect, which is very inconvenient and takes time. Is there a cleaner way to clear the stall/halt on a bulk endpoint without re-enumerating the devices?

   

Would appreciate any help on this. Couldn't find much Cypress documentation on USB stall matters.

   

Kind regards,

   

Eduard

0 Likes
Reply
1 Reply
Anonymous
Not applicable

The re-enumeration should not happen. It is probably due to the USB Hub. After a stall, call Endpoint->Abort(), then remove all IOCTL calls by calling FinishDataXfer() for every queued up transfer. Finally call Endpoint->Reset() to clear the stall and continue with the transfers.

0 Likes
Reply