Electrical – BOOT0 circuit design in STM32f446

designpinoutpulldownpullupstm32

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

I'm stuck with (BOOT0) pin. I want it to be (0) as recommended.

[...]

I've looked at the data sheets to find the rating (voltage and current), I just found the voltage to be 9V !

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 the BOOT0 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.

what should I do?

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 the BOOT0 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.