2025-04-30 5:37 AM - last edited on 2025-04-30 5:50 AM by mƎALLEm
Hi,
I'm currently working with the STM32G491RET and using the NUCLEO-G491RE evaluation board. I need to check whether the device enters boot mode using the BOOT0 pin and NRST.
From my understanding, to enter boot mode, BOOT0 should be driven low, and NRST should be toggled (low to high). I connected the board to my PC via USB (ST-LINK) and tried entering boot mode, but it only resets the board and restarts the existing program, printing debug logs as usual.
Initially, JP3 (which connects the ST-LINK reset to the MCU reset) was shorted. The hardware team has now removed that connection. After this change, when I attempt to enter boot mode, no logs are shown.
How can I confirm whether the device has successfully entered boot mode?
One more clarification is needed. If i get a fresh board, just BOOT0 pin and NRST enough to enter bootmode?
2025-04-30 5:45 AM
Isn't it BOOT0 = HIGH ??
Can check the memory mapped at zero. Probably a SYSCFG RMP register indicating the mapping.
Newer STM32 will enter System Loader when blank, some need power cycling rather than just reset.
2025-04-30 5:59 AM - edited 2025-04-30 6:01 AM
Hello,
1- BOOT pin should be pulled high. But what interface are you using for the bootlader? UART? USB (DFU)? I2C? etc ?
2- STLINK is not intended to program the device with the bootloader. Do you mean you are using STLINK virtual comport and USART for bootloader interface? If yes you need to refer to the AN2606 / Table 110
and check the resource needed for the UART especially the Tx an Rx pins and verify if they are connected to the STLINK on the board. Read this article: How to use STM32CubeProgrammer to access the USART bootloader on my STM32 board
2025-04-30 6:38 AM - edited 2025-04-30 7:11 AM
you mean BOOT0 pin default pin state is LOW only
we need to make it HIGH to enter bootmode?
Current setup is I connected USB to PC via STLINK. and I shorted BOOT PIN to high, and done RESET.
Then reading SYSCFG_MEMRMP via cube programmer, I am getting 0x20002CC8, which means it is normal boot, right?