My first custom board with an STM32 and a full-speed USB device port shows "device descriptor request failed" on Windows, and Linux prints "device descriptor read/64, error -71" a few times before giving up. The same firmware runs on a development board without problems.
What does the host actually do during enumeration, and which hardware or firmware faults typically make it fail at this very first step?




