We are currently using the G400-D module on a custom board and it connects to another custom board via USB Host.
Our environment can be noisy at times which has led us to receive BAD CRC, Bit-stuff Errors and SOF Frame Count Errors. In some cases this causes the device board to disconnect from the USB host (G400-D board). The strange thing is that the USB device is unable to reconnect to the host and just sits in a disconnected state. Even after physically unplugging and reconnecting the device board it still is unable to communicate.
When the same device board is connected to a windows system as the USB host (running software) we do not see any issues with the device being unable to reconnect. The same errors do occur but there is no reconnect issue.
Our question is regarding the USB host stack. Is their a way that we are able to force this reconnect? Also, from a USB host source code POV, can GHI identify reasons for the host stack to lock up or get into an exception that could cause it to stall?
As a note, we are have tested and debugged the device board and it does not reset or stall but the USB stack simply disconnects and sits waiting to be attached. Regarding the host side board, we have a USB port connected directly to the G400 through a CMC and ferrite bead for filtering.