cancel
Showing results for 
Search instead for 
Did you mean: 

Configure BOOT0 Pin for USB DFU and Normal Operation in STM32H745

dplogiic
Associate II

Hello,

I am working with the STM32H745 microcontroller and planning to upload firmware via USB DFU. I need clarification about the BOOT0 pin configuration for this process:

  1. For USB DFU mode: Should I set the BOOT0 pin to 1 (Boot from System Memory) before performing a reset?
  2. For normal operation: Should I set the BOOT0 pin to 0 (Boot from User Flash) after programming and perform another reset?

Additionally, is there a way to switch between DFU mode and normal operation without physically toggling the BOOT0 pin, such as through software or other techniques?

Any guidance or recommendations would be appreciated.

and below circuit i used in my custom board design to select both option. P1 is jumper. is it correct method? or suggest any.

dplogiic_0-1732180497187.png

 

2 REPLIES 2
FBL
ST Employee

Hi @dplogiic 

You can simply swap the BOOT address to system memory in the option bytes 0x1FF0 0000. You can access USB DFU mode.

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.

dplogiic
Associate II

Hello @FBL 

I am using custom stm32h745 based board without inbuild ST-link. I'm use external ST-link module for programming.

but on my board USB FS present. 

"I don't want to upload firmware using ST-Link. I want to upload firmware using only USB DFU."

So, for this we option like

1) connect boot0 pin with vdd to go in USB DFU mode (hardware touch). 

2) option is using firmware load boot address and jump in system memory USB DFU boot mode.

above options is good to work in my case but I need to press hardware reset button after flash code to jump normal operation mode.

And I want to jump in normal user flash mode without touching hardware reset button.

Any option to jump USB DFU mode and upload code and jump in normal mode without hardware touch like using stm32cubepgm setting or any other. can you suggest me or guide me how to?

Thanks in advance to help.