Skip to main content
Explorer
August 23, 2024
Solved

UART Booatloader for STM32F469I-DISCO

  • August 23, 2024
  • 2 replies
  • 1921 views

Hi,

 

I would like to test out the UART bootloader functionality for the demo board STM32F469I-DISCO.

 

I am using reference documents AN2606 and Demo board schematic. I am assuming  I need to follow below steps to achieve this.

Please let me know if I am missing any.

 

Step1: Load a regular software (some LED Blink) , then have the software to set the bit BFB2 when the user ready for bootload.

 

Step2: try to achieve pattern3 first line item of Table2 from the App note AN2606 .

 

  1.     a) Remove SB15 on the demo board, Stuff R150 with 1K to achive High condition of Boot0.

 

  1.     b) Set PB2 (Boot1) to high by adding pullup resistor

 

Step3: use STM32 Cube programmer to load ne bin file over the Virtual COM Port U3 (STLINK_V2) . It uses PB10 and PB11 (  MICRO UART3 connections PB10 TX,PB11 RX).

 

      Note: The micro PB10 is disconnected on the board to STLK_RX , make sure the connection is restored.

 

I look forward to your reply.

Best Regards,

Naga Amam.

 

    This topic has been closed for replies.
    Best answer by mƎALLEm

    In your case you are using UART3/PB10/PB11 which is correct according to the AN2606:

    SofLit_0-1724425597059.png

    You need simply to check the board's schematics: the UART3 connections + BOOT pin.

    Programming step: Boot0 pin needs to be tied to VDD and reset the MCU then connect to the MCU with STM32CubeProgrammer.

    Running user program step: Boot0 pin needs to be tied again to GND and reset the MCU. So your program will be running.

    This is basically what you need to do.

    Hope it helps.

    2 replies

    Technical Moderator
    August 23, 2024

    Hello, 

    Did you already test the bootloader over UART on that board and you faced an issue or what?

    You need to take care about Boot0 pin level (need to be connected to VDD):

    SofLit_0-1724424964094.png

    Then reset the board, to let the MCU jumps to the system bootloader.

     

    NAmam.2Author
    Explorer
    August 23, 2024

    Hi,

    I am new to this; I just want to make sure I am on right track before I make all these changes on board .

    Also I would like to know if there any easy ways to test out UART bootloader with/without any changes.

    Thank you,

    Naga.

    mƎALLEmAnswer
    Technical Moderator
    August 23, 2024

    In your case you are using UART3/PB10/PB11 which is correct according to the AN2606:

    SofLit_0-1724425597059.png

    You need simply to check the board's schematics: the UART3 connections + BOOT pin.

    Programming step: Boot0 pin needs to be tied to VDD and reset the MCU then connect to the MCU with STM32CubeProgrammer.

    Running user program step: Boot0 pin needs to be tied again to GND and reset the MCU. So your program will be running.

    This is basically what you need to do.

    Hope it helps.

    Super User
    August 23, 2024

    Do either Step 1 or Step 2, you do not need both.

     

    Alternatively, program a simple program which always jumps to the bootloader on startup. See here for how to do so:

    How to jump to system bootloader from application ... - STMicroelectronics Community

    After that, your step 3 will work. No hardware modification needed.

    NAmam.2Author
    Explorer
    August 23, 2024

    That is interesting, you said just do Step 1 and Step2 is not required, Could you please tell me which pattern on Table2 satisfies this condition? I look forward to your reply.

    Graduate II
    August 23, 2024

    You make more miss here

    MM1_0-1724429475618.png

    Only Pattern 5 is valid for 469, and pattern is for boot jumps. Other way is jump to bootloader code from your app, but this work only from your code. If you for example erase flash = next boot require pattern...