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:
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:
Could the G0 be entering the bootloader, and then jumping to the application really quickly so I can't notice it?
Thanks,
Rob