Skip to main content
Graduate II
December 5, 2025
Solved

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

  • December 5, 2025
  • 7 replies
  • 220 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!

    This topic has been closed for replies.
    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

    Explorer
    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 ...

    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

    LCEAuthor
    Graduate 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)!

     

    Technical Moderator
    December 5, 2025

    Hello,

    Check C20 capacitor: already there? kept its value?

    mALLEm_0-1764935645295.png

     

     

    LCEAuthor
    Graduate 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.

    Technical Moderator
    December 5, 2025

    Ok and what about R15 (boot pin)? 

    mALLEm_0-1764938864674.png

     

    Technical Moderator
    December 5, 2025

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

    LCEAuthor
    Graduate 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.

    LCEAuthorAnswer
    Graduate 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.