Skip to main content
LCE
Principal II
December 5, 2025
Solved

G431needs hard reset after power-up (Nucleo-32)

  • December 5, 2025
  • 7 replies
  • 761 views

Heyho,

I'm working with a STM32G431 on a Nucleo-32.

I've played with it before some years ago, so I already put on a 24 MHz crystal "HSE".

I'm using only the in-built ST-Link's USB power as a source.

Problem:

after connecting USB, the reset button must be toggled to start the controller.

Any ideas how this can be prevented?

We want to use the Nucleo for some in-house testing, and it would be nice if the controller started instantly at power-up without the reset button (which might be "hidden" in a small case).

Google and search here didn't really show this problem.

Thanks!

Best answer by LCE

Stranger things... happening ;)

Since I changed the UART to ST-Link from HAL (an older version) to direct register settings, the MCU starts fine without an extra reset.

Happy that it's working now, but I have no time to investigate this any further.

7 replies

Ozone
Principal
December 5, 2025

Perhaps you could try to connect to the system bootloader with an appropriate tool.
If that succeeds, there is probably an issue with the BOOT0 pin level.

Or there is either a power supply or clock setup issue related to the crystal.
Does it not properly start up with a firmware that tries to enable HSE ?

Just guessing here ...

waclawek.jan
Super User
December 5, 2025

> I already put on a 24 MHz crystal "HSE".

And does the program use HSE? Isn't it set as HSE Bypass? How are the Solder bridges around the HSE crystal connected/disconnected?

JW

LCE
LCEAuthor
Principal II
December 5, 2025

Thanks so far guys!

HSE - not in bypass mode for oscillator : 24 MHz crystal

When I plug in the USB = power, then:

- the STM32's oscillator for the HSE starts, I see the 24 MHz with ~ 1Vpp on the scope

- NRST is high

- the program doesn't seem to start - or hangs somewhere after clock configuration (?)

When I press the on-board reset button, the program starts as it should, and I can check that it's actually using the 24 MHz.

I tried several voltage scaling settings, BOR levels, flash latency, HSI -> no change in behavior.

I just created a quick CubeMX project and that does the same (also switched between HSE and HSI)!

 

mƎALLEm
Technical Moderator
December 5, 2025

Hello,

Check C20 capacitor: already there? kept its value?

mALLEm_0-1764935645295.png

 

 

"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."
LCE
LCEAuthor
Principal II
December 5, 2025

C20 still there, never touched / changed it, soldering looks good.

 

PCB version is MB1430A - any known issues with that?

The on-board ST-Link was updated by CubeIDE.

mƎALLEm
Technical Moderator
December 5, 2025

Ok and what about R15 (boot pin)? 

mALLEm_0-1764938864674.png

 

"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."
mƎALLEm
Technical Moderator
December 5, 2025

And what tool are you using to upload your application? CubeIDE or CubeProgrammer?

"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."
LCE
LCEAuthor
Principal II
December 5, 2025

R15: "untouched" 

CubeIDE or CubeProgrammer: both, doesn't matter

As I said, everything is working fine, except that I must do the reset once after USB connection = power-up.

After flashing with the CubeProgrammer, I have to: Disconnect - Connect - Disconnect, then the MCU starts.

LCE
LCEAuthorBest answer
Principal II
December 9, 2025

Stranger things... happening ;)

Since I changed the UART to ST-Link from HAL (an older version) to direct register settings, the MCU starts fine without an extra reset.

Happy that it's working now, but I have no time to investigate this any further.