2018-11-05 02:55 AM
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
2018-11-09 05:54 AM
In addition to my question:
With a jumper on BOOT0 and VDD the rev.B device immediately shows up as 'STM32 BOOTLOADER' and the rev.D device fails to enumerate..... (powered from USB bus). No problems with externally powered device and USB plug-ins.
Clearly it is not related to the software, but somehow the power-regulator, startup timing...
Anyone have seen these kind of problems?
Could also be just my device...
M. Seynen