[STM32F07x] Unexpected software reset when BOOT0 pin is connected to Vdd
Hello,
I am currently working on a custom PCB which has an STM32F072 chip on it.
We want to be able to program it using ST's internal bootloader, so we placed a 10k pull-up resistor to the BOOT0 pin.
I generated a basic program using CubeMX to test the PCB.
When I start debugging the application, a breakpoint is triggered at the start of the main application, as expected.
However, as soon as I continue debugging, a reset is triggered and the chip switches to its internal booloader, since the BOOT0 pin is high. This reset is seen on the NRST pin using a scope, and the PINRSTF and SFTRSTF bits are set in the RCC->CSR register.
I also tried sending a go command in the bootloader, thus without the debugger connected, but here I see the same reset happening.
When I step through the code, the reset does not happen and the program just loops its main loop. But the SysTick_Handler is never triggered.
The reset circuit has a 10k pull-up resistor and a 100nF capacitance, and is only connected to the debug header.
The weird thing is, when I remove the pull-up resistor from the BOOT0 pin and place a pull-down resistor instead. The firmware is working exactly as expected, the SysTick_Handler is triggered, and not a single reset is seen on the NRST pin. So nothing is changed in the reset circuit, only the level of the BOOT0 pin is changed.
I generated code using CubeMX 4.27 and CubeMX 5.4, but both give the same result.
Debugging is done with an ST-Link.
Can somebody tell me what is causing this reset and how can I prevent it from happening?
Thank you in advance!
