2023-03-09 08:13 AM
STM32F722: USB Device peripheral: HID: When connected through a USB hub to a Windows 10 host PC, I can see endpoint data (OUT transactions) with another device address present before the Set_Address is issued by the host. There are other active device ports on the hub receiving communication from the host. It appears the STM32 USB device peripheral ignores these transactions since they are to the wrong address.
I do, however, see instances on the bus (using USB sniffer) where a full 64 byte packet to the wrong device is present followed immediately by a full 64-byte packet to the correct address. The report id is 121 bytes so an additional 57-byte packet is required to complete the OUT transaction. In this situation it appears the 64-byte packet sent to the correct address is lost.
Can someone explain what happens in the USB peripheral in this case, and does something need to occur in the USB device library firmware to handle this?
In attached USB sniffer screenshot device 15 is the actual device on this connection.