AnsweredAssumed Answered

STM32F7 Boot Process Clarification?

Question asked by Mike Hooper on Jun 29, 2017
Latest reply on Jun 30, 2017 by Mike Hooper

Hello folks! New to STM (migrating from TI). Please be gentle on me:) I'm working on a custom board design based on the STM32F7 device.


Can someone point me to a simplified tutorial on the boot process for the STM32F7 (yes I've read AN-2606 and AN-3156)? My goal is to design a custom board that, when fresh from the PCB assembly house (i.e. no program in flash) can be programmed via the USB port. I prefer not to add hardware, such as a push button for this function. I would prefer to attach a USB host and have the un-programmed device automatically start the bootloader. My Windows app would then issue the boot loader commands in order to do the initial programming of the device.


In the TI world, the processor (MSP) would invoke the boostrap loader (BSL) in any one of 3 ways: Blank Reset Vector (i.e. the device has not yet been programmed), Software jump to BSL code, and pull-up resistor on PUR pin of the USB peripheral. Since the device had not been programmed (i.e. blank reset vector), the boot loader code began looking for a connected USB device. This worked very reliably for initial firmware programming.


I see that the STM can also search for a USB device, but it appears that the BOOT pin needs to move from a 0 to a 1 to kick off this process, which means attaching some sort of push button to the BOOT pin. IS THIS CORRECT? Is this the only way to start the bootloader? Again, I would prefer NOT to add a BOOT pushbutton switch if possible


Any guidance would be much appreciated.