cancel
Showing results for 
Search instead for 
Did you mean: 

Can't enter the bootloader of the STM32G071 using the BOOT0 pin

RHelv.1
Associate II
Our main board uses two STM32's: an STM32L5 which does most of the processing, and a STM32G071 which is used strictly as a USBPD port controller for two ports. 
 
The L5 can assert / deassert the G0's BOOT0 pin, in order for the G0 to enter bootloader mode for firmware updates. However, in testing, the G0 always seems to come out of reset in the Main Flash memory boot area. 
 
Below is the circuit we have implemented:
 
RHelv1_3-1691445793858.png
I can confirm the STM32G0 BOOT0 pin goes high and low as expected. I can also confirm the L5 can reset the G0 as expected.
 
For the G0 Option Bytes, I have BOOT_LOCK=0, nBOOT1=1, and nBOOT_SEL=0. 
 
My test procedure is as follows:
- L5 asserts the G0 BOOT0 pin high
- L5 puts the G0 into reset (NRST pin goes low)
- L5 takes the G0 out of reset (NRST pin high)
 
However, the G0 always seems to come out of reset into the main flash memory area. What am I doing wrong here? I believe I am following the Boot modes of the G0 properly:
 
 
RHelv1_4-1691445841496.png
 
Could the G0 be entering the bootloader, and then jumping to the application really quickly so I can't notice it?
 
Thanks,
Rob
1 REPLY 1
TDK
Guru

There's no mechanism in the bootloader which would cause it to jump to flash automatically. Likely there's something else that would explain it. Perhaps one of the assumptions is incorrect.

As a test, try nBOOT_SEL=1, nBOOT0=1, does it jump to the bootloader then?

How do you know it's jumping to flash and not the bootloader?

 

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