2016-10-18 05:40 AM
We use the internal bootloader of the controller to do the initial firmware programming via USB (DFU). In the last time the we run into trouble with some units - the devices don't properly enumerate on USB (unknown device).
The hardware seems to be ok, since once programmed with our own firmware via SWD, the devices running fine. I tried to debug the internal bootloader, but didn't come close to a meaningful cause. What I've seen is an endless loop starting nearby 0x1FFF369C, that obviously checks the USART1/3 and the CAN related GPIO Pins. The PLL still uses the HSI clock. We tied all the CAN and USART related pins according to AN 2606 to a fixed level. Can somebody give me a hint regarding the cause of this behavior. #bootloader2016-10-18 07:18 AM
Make sure your HSE crystal starts quickly, and stabilizes to the correct frequency. The loader expects a number of specific frequencies which it benchmarks. Evaluate in your app. Try also a VCP/MSC USB load on your board, does that function properly?