2024-08-23 07:40 AM
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 .
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.
Solved! Go to Solution.
2024-08-23 08:10 AM - edited 2024-08-23 08:20 AM
In your case you are using UART3/PB10/PB11 which is correct according to the AN2606:
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.
2024-08-23 07:54 AM - edited 2024-08-23 07:57 AM
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):
Then reset the board, to let the MCU jumps to the system bootloader.
2024-08-23 07:59 AM
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.
2024-08-23 08:10 AM - edited 2024-08-23 08:20 AM
In your case you are using UART3/PB10/PB11 which is correct according to the AN2606:
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.
2024-08-23 08:22 AM - edited 2024-08-23 08:22 AM
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.
2024-08-23 08:50 AM
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.
2024-08-23 09:22 AM
You make more miss here
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...
2024-08-23 09:38 AM
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?
2024-08-23 09:52 AM
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.