cancel
Showing results for 
Search instead for 
Did you mean: 

NUCLEO-F429ZI can't go to UART bootloader with the reset button, but only after a power cycle. Why?

MSipo
Senior II

I'm using a NUCLEO-F429ZI. It can't go to UART bootloader when using the reset button (BOOT0 connected to 3.3V). It will only go to UART bootloader if I power cycle the board ((BOOT0 connected to 3.3V)). What is going on? It should read the BOOT0 pin after reset and then wait for 0x7f on UART1.

I have broken off the st link and also disconnected the bridges to ethernet. I also have the similar problem to enter SPI bootloader.

1 ACCEPTED SOLUTION

Accepted Solutions
MSipo
Senior II

I solved it. ST have forgotten to set the propper state of the BOOT1 pin. I don't know why ST left BOOT1 floating.

0693W00000UnD7hQAF.pngI had to close SB152 (BOOT1 to ground), then it worked.

Hope this helps someone.

View solution in original post

9 REPLIES 9
MSipo
Senior II

I solved it. ST have forgotten to set the propper state of the BOOT1 pin. I don't know why ST left BOOT1 floating.

0693W00000UnD7hQAF.pngI had to close SB152 (BOOT1 to ground), then it worked.

Hope this helps someone.

KDJEM.1
ST Employee

Hi @Community member​ ,

Thank you for your contribution.

The Schematic Pack is in line with the boot modes table described in the reference manual RM0090 and precisely in section 2.4.

0693W00000UnF3NQAV.pngWhen your question is answered, please close this topic by choosing Select as Best. This will help other users find that answer faster.

Kaouthar

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Your comment doesn't answer anything related to the actual issue. The real question is why the BOOT1 on a Nucleo board is floating by default.

KDJEM.1
ST Employee

Hi,

> why the BOOT1 on a Nucleo board is floating by default.

My understanding is that BOOT1 was kept floating in Nucleo-F429Zi in order to allow the user to select suitable boot memory (setting the solder bridge) depending on his needs:

  • If the system memory is selected as the boot so, the BOOT1=0 and BOOT0=1.
  • If the embedded SRAM is selected as the boot so, the BOOT1=1 and BOOT0=1.

Thanks,

Kaouthar

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

@Piranha​ ,

BOOT1 on 'F1/'F2/'F4 is a GPIO (PB2) so it's IMO OK to leave it floating by default on a devboard.

@KDJEM.1​ ,

In light of this thread, I would suggest to add a note into UM1974 and UM1724 to point out the need to jumper properly BOOT1/PB2 when bootloader is to be used in 'F1/'F2/'F4 (AN2606 Pattern 1). There already is a footnote to "morpho connector" tables for BOOT0 (although it does not explicitly mention bootloader entry), I would suggest to add such note for BOOT1 into the same footnote for the 'F1/'F2/'F4 tables, maybe even explicitly mentioning bootloader and AN2606.

@Community member​ ,

I wonder whether you do use PB2 and set it high in your application - that's my only explanation for the symptoms you've described (bootloader not entered upon pushbutton reset).

JW

No, I don't use PB2 in my application.

0693W00000UnJH4QAN.pngIt is just a simple LED blink application for me to use when testing the bootloader.

> BOOT1 was kept floating in Nucleo-F429Zi in order to allow the user to select

A pull-up/down still allows the user to force the pin to the opposite level. If the BOOT1 would be pulled down through R73 100k by a closed SB152, then, when the user sets BOOT0=1, by default the MCU would boot the System bootloader, which is necessary more often that booting SRAM. But now it's unpredictable. And adding a 100k pull-down on one of the pins will rarely interfere with other usage of that pin even without disconnecting that pull-down.

Agree with @Community member​. In fact, the documentation could be somewhat improved on this point.

The problem is also made a bit confusing by the fact that the same board MB1137 is not only used for F2/F3/F4/F7, but also for the STM32H743ZI. Of the STM32 used on the MB1137 only the STM32F2..F4 have a pin function BOOT1.

Regards

/Peter

In order to give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

If R73 is fitted only for F2/F4 parts, it would be logical to also fit the SB152 for the same parts. Not fitting it creates more issues and confusion than fitting it.