Question
STM32F413/L476: USB_OTG_FS (CDC-ACM) (device-mode): IN endpoint lock-up
We have been working on developing a USB dongle based on STM32F413/L476 which acts as a CDC-ACM serial device. We mostly have everything up and running expect for an issue with USB which shows up sporadically and details are as below:
- USB CDC-ACM interface enumerates fine.
- Communication with host over USB is also fine.
- The host application keeps sending data over USB to dongle. And dongle in-turn sends back application specific responses.
- But after a while, we see that USB communication is no more ongoing. And on a closer, look we found that it is the IN transfers from the USB OTG device that are blocked.
- From the IN endpoint register state, it looks endpoint is enabled and transfer is ongoing. But, for some reason Transfer complete interrupt never fires anymore. Causing the lock-up.
- To get more insights into the issue, i also tried capturing the USB traffic using Wireshark. And when the issue shows up, i see that USB device is sending URB_BULK_in packets to host with status set to "Broken pipe (-32)". Which is not the case otherwise.
Can anyone from the community please share inputs on the above issue. We have been debugging this for a while already and any help would be much appreciated.
