I'm designing STM32f446 chip in PCB in a project. It will be programmed through SWD.
but I'm stuck with (BOOT0) pin. I want it to be (0) as recommended.
The thing is that there is no enough info. about it.
I've looked at the data sheets to find the rating (voltage and current), I just found the voltage to be 9V !
I need to select the pull-down resistor, what should I do?
thanks,
Best Answer
Section 6.2 in the STM32F446 datasheet shows that the absolute maximum voltage allowed on the
BOOT0
pin is 9V. However, a voltage above VDD is only used in one, rare, situation. In all other (i.e. normal) cases, you treat theBOOT0
pin as a normal CMOS input (input voltage between VDD and VSS).The one situation where that 9V maximum voltage is relevant, is because the
BOOT0
pin is also the VPP pin. One option for programming the internal Flash memory of the MCU (which is rarely used outside of mass programming on a production line) involves supplying an external VPP voltage on that pin.That is the only time when VPP is applied to that pin, so that is the only time when the 9V maximum applies. See section 3.5.2 "Program/erase parallelism" in Reference manual RM0390 for your MCU.
For each family of STM32 MCUs, ST produces a "Getting started with [...] MCU hardware development" application note. For your MCU, you need "Application note AN4488 - Getting started with STM32F4xxxx MCU hardware development". That shows you how to connect the
BOOT0
pin for normal use.If you don't ever want to change this
BOOT0
setting, you could tie that pin low (i.e. to your 0V rail), to force the MCU to always boot from your program in its Flash. However that will prevent you booting the MCU using its built-in bootloader (or from SRAM) in future, if your plans change. Therefore leaving theBOOT0
pin as a logic high/low selectable option (e.g. via jumper pins or solder jumper etc.) may be sensible, as shown in the ST "Getting started" application note linked above.