Skip to main content
Graduate
September 30, 2022
Solved

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

  • September 30, 2022
  • 4 replies
  • 2205 views

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.

    This topic has been closed for replies.
    Best answer by MSipo

    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.

    4 replies

    MSipoAuthorAnswer
    Graduate
    October 3, 2022

    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.

    Technical Moderator
    October 3, 2022

    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

    Graduate II
    October 4, 2022

    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.

    Technical Moderator
    October 4, 2022

    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

    Graduate II
    October 5, 2022

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

    Super User
    October 4, 2022

    @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

    MSipoAuthor
    Graduate
    October 4, 2022

    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.