STM32F3Discovery USB-CDC working on rev.B but NOT rev.D board.
Hello,
I have used USB-CDC for some time. All STM32F3 discovery boards are rev.B (MB1035B). Recently I purchased a new one, which turned out to be a revision D (MB1035D) .
Running the same code on the new board gives the famous 'USB device not recognized' error on windows (7 and/or 10).
Also a clean/new CubeMX project fails on Rev.D. but works perfect on Rev.B.
Details: CubeMX v.4.26.1. board selector -> F3discovery, Initialize peripherals default mode, set USB_DEVICE to CDC, (optionally change Middleware USB_DEVICE to SELF_POWERED = Disabled). Then Generate Code, Build Project, Program Device… and switch USB cable from ST-LINK to USB-USER and there is the ‘failed enumeration’ error.
(When external power is supplied, either through ST-LINK or direct 5V supply, the enumeration does work!).
I also found a thread on stackoverflow (https://stackoverflow.com/questions/35218303/stm32f3-user-usb-not-detected). The proposed delayed activation of the DP/DM signals for a few seconds after reset, also works.
In conclusion: a BUS-powered USB-CDC on a rev.D STM32F3dicovery, -out-the-box- example does not initialize correctly from power-up. Delaying the USB-enumeration solves the problem.
Can someone verify and confirm this behavior?
And Why??? There does not seem to be any difference in pcb design…
Thanks and Regards,
M. Seynen