cancel
Showing results for 
Search instead for 
Did you mean: 

UART Booatloader for STM32F469I-DISCO

NAmam.2
Associate II

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.

 

8 REPLIES 8
SofLit
ST Employee

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.

 

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.

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.

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.

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

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.

If you feel a post has answered your question, please click "Accept as Solution".

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.

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

Yes! That is a good catch about Pattern5.

Pattern 5 has 3 possible options, 2nd option will not work as it will have valid code when we are doing software updates in the field. For other options we have to manipulate BOOT0 pin (bringing it to high). Agreed?

Yes only BOOT0 is ok manipulate and simpler is solder button switch to R150 and leave SB15. Then hold button and click black reset button starts DFU.