I have a problem with enumeration of low speed devices through a hub (working at full speed).
I am using STM32F205 USB full speed (USB_OTG_HS in full speed mode using the embedded full speed phy)
with STM32_USB-Host-Device_Lib_V2.1.0.
I did some modifications to the host lib to support multiple devices / interfaces
and added the hub class driver. Everything is fine with devices working at full speed, but the enumeration
of low speed devices fails sometimes (sometimes it works!). The problem is, that sending the SETUP packet of a low speed control transfer
could result in a transaction error (TXERR).
According to the STM32 manual this error indicates one of the following errors:
- CRC check failure
- timeout
- bit stuff error
- false EOP
I have no hardware analyser, so I am not sure what exactly happens.
I have the suspicion that the false EOP event causes a problem when using low speed devices through a full speed hub.
But if I am right, this should be a problem of the built-in hardware scheduler.
I asked ST for support, but they said, that the problem is not known.
Is there anything else I should keep in mind?