2015-05-11 11:16 AM
Hello,
We have been using STM32F205VB6 in production for several years. In a recent batch we purchased a high percentage of processors the boot loader doesn't work over USB properly. We have a jumper tied to BOOT0 pin and I have verified that the voltage is correct when the device is powered up or reset, however the device never shows up over USB.When I use JTAG to examine the state of the processor just after reset I see the follow address on the program counter: Good Board: pc=0x0B92349EBad Board: pc=0x1FFF3DE4You can see that a bad processor is not in valid memory space.Any ideas on how I can further interrogate the boot loader and figure out what is the problem. #bootloader #stm32f22015-05-11 11:42 AM
Copy out the ROM to a .HEX file and post it
Review the version# of the Boot Loader, and the date code(s) from the afflicted parts.2015-05-11 02:38 PM
2015-05-11 03:05 PM
2015-05-11 04:08 PM
How do you have BOOT1 (PB2) connected? What frequency crystal do you have, and how close to tolerance is it, and compared to the units that function.
2015-05-11 06:09 PM
2015-05-11 06:17 PM
Sorry, I forgot to answer your second question. The crystal is not used, the internal clock is used. The external crystal is never started when in the bootloader mode. This is one of the first things I checked.
2015-05-11 11:54 PM
You might want to tell us about your hardware, namely grounding, VDD/VDDA(!), RST connections.
JW2015-07-01 03:06 PM
We made some progress on this problem. There is some behavior change related to the Boot0 and Boot1 pins when the processor is held in reset.
Normally the processor does not care about the Boot1 pin when Boot0 is pulled low. This is normal bootup mode. However when 0 is pulled hi to enter DFU mode 1 is also sampled to determine ROM vs SRAM.We don't use the Boot1 pin and have always left it open. We have now seen that on older revisions of the silicon this pin naturally was low when the device is held in reset. On never silicon it is floating high.If we use a reset controller that holds the device in reset when the board comes up, about 200ms, the Boot1 pin has enough time to float high and screw up the boot process.If we remove the external reset controller then the processor can start up faster and samples the pin while it is still low.