Search code examples
stm32cortex-mswdstm32cubeide

STM32: STLink won't connect through SWD any longer


The first flashing went fine, subsequent flashings fail with

Error in initializing ST-LINK device. Reason: No device found on target.

On an STM32H745 NUCLEO board I have enabled the DEBUG interface and SWO pin by mistake. Is there a way to hard reset this board ?


Solution

  • The "flashing under reset" trick did not work. That is, holding the reset button pressed and immediately releasing it before STM32_Programmer does its thing through ST-Link. A bit of RTFM-ing sometimes helps:

    If a deadlock is faced due to a mismatch between the HW
    board setting and the FW setting (LDO/SMPS), the user can
    recover the board by doing the following:
    - Power off the board
    - Connect CN11 ‘BT0’ pin (BOOT0) to VDD using a wire
    - This changes the BOOT0 pin to 1 instead of 0 and thus the
    device boot address is changed to boot address 1 making the
    bootloader starting in System memory, instead of starting the
    FW in the user Flash (FW that is setting a wrong LDO/SMPS
    configuration)
    - Power on the board and connect using
    STM32CubeProgrammer
    - Erase the user Flash
    - Power off the board and remove the wire between BOOT0
    and VDD
    - The board is now recovered and can proceed normally.
    

    Now I got to figure out why it goes deadlocked as soon as I flash my bin... commented some bits of code and rebuilt, sill does it.

    LE: found the offending lines:

      HAL_PWREx_ConfigSupply(PWR_LDO_SUPPLY);
      ...
    

    My SystemClock_Config function was all written for LDO power instead of SMPS