2023-10-04 8:01 AM
Hello, I need the PF2-NRST pin on the STM32G0C1 chip as an MCO.
Thus, I had to change the user flash to use the pin in GPIO mode. While I had doubts about this approach's validity since we are fiddling with the NRST, I still went ahead with it.
Now the pin is in GPIO mode, but surprise, reflashing new software with the ST-Link doesn't work anymore.
Error in ST-Link: The interface firmware FAILED to reset/halt the target MCU
Is there any possibility of unbricking this by booting from the embedded SRAM or the system memory?
Kind regards for any help.
This was the code I used to create a paperholder:
void ConfigureNRSTasGPIO(void)
{
FLASH_OBProgramInitTypeDef OBInit; // Option Bytes configuration structure
// Unlock the Flash Control Register
HAL_FLASH_Unlock();
HAL_FLASH_OB_Unlock();
// Configure the Option Bytes
HAL_FLASHEx_OBGetConfig(&OBInit); // Get the current configuration
// Set the NRST mode to GPIO
OBInit.USERType = OB_USER_NRST_MODE;
OBInit.USERConfig = FLASH_OPTR_NRST_MODE_1;
// Write the Option Bytes configuration
HAL_FLASHEx_OBProgram(&OBInit);
// Launch the option byte loading
HAL_FLASH_OB_Launch();
// Lock the Flash Control Register
HAL_FLASH_OB_Lock();
HAL_FLASH_Lock();
}
2023-10-05 11:05 PM
Sounds like you've reconfigured PA13/PA14 away from SWD as well, as NRST is usually not needed for SWD connection. If so, and if you've touched BOOT_LOCK etc. or your firmware clears DBG_SWEN, there is a good chance that you're locked out irreversibly.
In theory there might be a short intervall after a power-up reset before option byte loading finished during which the debugger might have a chance to attach and halt the CPU, but that's quite a narrow window.
2023-10-05 11:40 PM
I thought aswell that NRST is not needed for SWD but when connecting with the CubeProg in Normal or HotPlug mode I get the same behaviour.
The PA13 and PA14 pins should not have been tampered with and worked before this firmware flash.
I can't tell you the exact makeup, though, since we are developing with Zephyr, and I am unable to find the SWD settings in the DTSI.
BOOT_LOCK or DBG_SWEN should not have been touched.
What I tried else:
I already tried setting the BOOT0 pin on the STM32G0C1E-EV to Vcc by connecting CN9 pin 8 and 6. As far as I understand, I cannot set the option bites while not connected with the CubeProg or without HAL functions over Zephyr.
I have already had a look at the AN2606 but couldn't see what connection over the ST-Link is easily accessed.
(Connecting UART over the VCOM for example leads to nothing)
At the same time when connecting to the UART1 bootloader with a Analog Discovery I also don't see any output.
Thank you for your time.
2023-10-05 11:47 PM
+ set st-link connection : reset mode -> software reset
2023-10-05 11:58 PM
Same behaviour with Normal and HotPlug mode.
Log:
08:55:04 : UR connection mode is defined with the HWrst reset mode
08:55:05 : ST-LINK SN : 066EFF544855888367165521
08:55:05 : ST-LINK FW : V2J42M27
08:55:05 : Board : STM32G0C1E-EV
08:55:05 : Voltage : 3.24V
08:55:05 : Error: No STM32 target found! If your product embeds Debug Authentication, please perform a discovery using Debug Authentication
In the log it displays HWrst reset mode even though the Prog reset mode is set to software reset.
Thanky ou for your time.
We’re moving the ST Community to a new platform to give you a better and more reliable community experience.