cancel
Showing results for 
Search instead for 
Did you mean: 

STM32G030, Does not enter bootloader when boot0 is 3.3V. What is boot selector option bit. Thank you

ADani.2
Associate III
 
1 ACCEPTED SOLUTION

Accepted Solutions

RM0454 contains the Flash Option Bytes in section 3.4.1 and lists an ST production value of 0xDFFF'E1AA for the User and read protection option bytes.

That means nBoot0 = nBoot1 = nBOOT_SEL = 1, which meets pattern 11, condidtion 3 in AN2606, if the Flash is empty:

nBoot0(bit) = 1, nBOOT0_SEL(bit) = 1, BOOT_LOCK(bit) = 0 and main Flash memory empty

(please note that BOOT_LOCK(bit) is only available in the STM32G0x1 and is read as 0 in STM32G0x0)

This also means that you have to reset nBOOT_SEL (bit) to 0 during programming via the bootloader, otherwise the device cannot be accessed later via Boot0 (pin) = 1 after programming.

Good luck!

When your question is answered, please close this topic by choosing Select as Best. This will help other users find that answer faster.

/Peter

In order 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.

View solution in original post

5 REPLIES 5
Peter BENSCH
ST Employee

As you can find in AN2606, the STM32F030 uses bootloader activation pattern 11:

Boot0(pin) = 1, nBoot1(bit) = 1 and nBOOT0_SEL (bit) = 0

So, additionally to BOOT0 you also need to set both bits in the user option bytes, e.g. using the STM32CubeProgrammer. The boot configuration is also described in RM0454, section 2.5.

Regards

/Peter

In order 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.

Hello,

If MCU is not in bootloader mode, I can not connect programmer to it via UART, so I can not change this bit.

What is the default value of this bit.

Thank you.

do you have access to the SWV debugger pins? thats the way you resurrect a bricked/not bootloading mcu

we dont need to firmware by ourselves, lets talk

OK thank you

RM0454 contains the Flash Option Bytes in section 3.4.1 and lists an ST production value of 0xDFFF'E1AA for the User and read protection option bytes.

That means nBoot0 = nBoot1 = nBOOT_SEL = 1, which meets pattern 11, condidtion 3 in AN2606, if the Flash is empty:

nBoot0(bit) = 1, nBOOT0_SEL(bit) = 1, BOOT_LOCK(bit) = 0 and main Flash memory empty

(please note that BOOT_LOCK(bit) is only available in the STM32G0x1 and is read as 0 in STM32G0x0)

This also means that you have to reset nBOOT_SEL (bit) to 0 during programming via the bootloader, otherwise the device cannot be accessed later via Boot0 (pin) = 1 after programming.

Good luck!

When your question is answered, please close this topic by choosing Select as Best. This will help other users find that answer faster.

/Peter

In order 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.