Skip to main content
Visitor II
March 3, 2021
Question

BOOT0 pin problem on STM32F302RE

  • March 3, 2021
  • 15 replies
  • 6143 views

Hello, I use STM32 for years, and on a new board I use for the first time a F3 series : STM32F302RE

I use exactly the same schematic as all my previous board, and for the BOOT0 pin, I have a 2.2K pull-up pull-down, and a jumper to set the pin to 3.3V when I need to reflash it through UART1 with internal system bootloader. On this project I don't use this jumper because I use an stlink/V2 cable to flash.

On a board I work on, after some days with everything fine, with no reason the board stopped working. Read/write flash was OK but impossible to boot. I finally checked the BOOT0 pin, and found 1.6V on the pin, even with the 2.2K pull-down resistor ! Thus the BOOT0 pin now leaks ~700µA of current !!!

If I short the pin directly to the ground, the chip boot normally, but this behavior is not normal, I never see that in 8 years I use STM32.

What happened to this BOOT0 pin !?

Also, I worked on a second board, and some hours later I had the same problem.

It worry me a lot, because after production if the problem appears after delivery, the board will stop working because jumping on the internal system bootloader at power-up....

Regards

Cyril

    This topic has been closed for replies.

    15 replies

    Super User
    March 4, 2021

    Try to bulkerase the chip, and change all fuses/option bytes to default values. After that, perform a power reset.

    Please report back if it made any change.

    JW

    PS. I am not ST and this is not any "secret recipe"; I'm just trying to help by wild guessing.

    Visitor II
    March 4, 2021

    Thank you for suggestion, but it does not help. Option byte was already to default values.

    My understanding is the BOOT0 pin has an internal hardware problem, but can't understand why. Never see that in 8 years using thousands of STM32 in my products.

    Is there any ST engineer here if they already seen this problem, and why it appears ?

    Regards

    Graduate II
    March 4, 2021

    Hardware fault may happen out of nowhere, but quite rare. Consider first some external misshap. Replace the chip and better test with more board.

    Super User
    March 4, 2021

    This is a primarily user-driven forum, with only casual ST presence. You may want to talk to ST directly, perhaps through the web support form.

    I don't believe it's a damaged pin, my guess is that you inadvertently activated some non public feature. This is why I asked about the option bytes. Did you modify them at all, from program or using the debugger/programmer? Do you perform FLASH programming in your program?

    As I've said I am not ST and only speculating here.

    JW

    Visitor II
    March 24, 2021

    Hello,

    No I don't think I activated some hidden feature. Never touched option byte, and I checked they are all with default value.

    I don't use flash programming for now in my program. The pin is sinking a lot of current to 3.3V, it's clearly an internal hardware problem for me.

    And on another board, now I have a similar problem with /RST pin. Yesterday the board was working fine, this morning it doesn't want to startup.

    After checking all signals, I found the /RST pin stucks to 1.2V, with no reason. On my schematic I followed the datasheet recommendation, I just have a 100nF capacitor to GND on /RST pin !!! I removed it to check if the leakage to GND was coming from the capacitor, but the answer is no ! The leakage to GND comes from inside the STM32F302 !!

    I added an external 1K pull-up to 3.3V on /RST pin and now the board boots normally. That's incredible, it makes me crazy !!! I can't deliver boards in these conditions

    Graduate II
    March 24, 2021

    Maybe some issue with grounding, power supply or it's startup sequence?

    Visitor II
    March 24, 2021

    There is nothing special on this board comparing thousands of board I already designed/delivered with F0 or F1 family. This is a 4 layers boards with a complete GND plane. There is a 3.3V regulator which supplies VDD and VDDA of the STM32F302RE, will all decoupling capacitors recommended in datasheet.

    Visitor II
    March 25, 2021

    The paranormal problems continue....

    I have 2 digital inputs on the board (PA0 and PA1), with external pull down, which are able to wake up the STM32 from sleep on rising edge.

    Yesterday evening, I tell to my board to enter in sleep mode, and this morning, the board was awake. The board told me it received a wake up event from one of these 2 inputs.

    Physically impossible, nothing was connected on the input ! So I connected my scope on these input, and one of these 2 inputs is stuck to 3.3V, despite the pull down resistor !

    I cut the pcb trace to check, and the current leak to 3.3V is coming from the STM32 (PA0). If I try to configure this pin in output, it works as expected. But in input mode, activating the pull down resistor as no effect, the pin is stuck to 3.3V.

    Never seen problems like this in 22 year of hardware development and more than 8 year working with STM32.

    These STM32F302RE I have in stock are coming from mouser. Is there a way to check if these parts are really genuine parts !?? I'm going crazy !!

    Super User
    March 25, 2021

    Okay I understand what you write, but this sounds much like a damaged chip, whatever the reason may be.

    JW

    Visitor II
    March 25, 2021

    I already changed the chip 3 time....

    First chip :

    • Everything was fine, until the board consumes 1.5mA too much in sleep mode comparing to previous measured sleep mode consumption. I finally found PB9 which is an I2C_SDA signal on my board (but not even configured and used for now) was leaking to GND, pulling 1.5mA current from the 2.2K pull-up of the SDA line.
    • Some time later, the BOOT0 pin problem appeared, was leaking to 3.3V and with the external 2.2K pull-down, was enough to pull the boot0 pin voltage to 1.2V and activate boot mode.
    • I changed the chip here

    Second chip :

    • After some hour of work, the same BOOT0 pin problem appeared, was leaking to 3.3V and with the external 2.2K pull-down, was enough to pull the boot0 pin voltage to 1.2V and activate boot mode. To continue working I removed the 2.2K pull-down and put a 0r resistor.
    • 1 or 2 days later, in run mode the board was consuming 30/40mA too much, I investigated and found PB3 which is an output on my board can't reach 3.3V when set, and was the reason of the too much current. I cut the trace, everything was OK on my board (no short circuit), but the problem was here again, the output didn't want to reach 3.3V when set, because of an internal 30mA leak to GND
    • I changed the chip here

    Third chip :

    • 3 days ago, I begin my work, I power up the board, and the board doesn't want to boot (was working the day before at the end of the day). This time the problem doesn't comes from boot0 pin, but from /RST pin, which now have an internal leak to GND, pulling voltage to 1.2V. I soldered an external 1K pull-up resistor and it started again
    • The evening, I put the board in sleep mode, and the next morning the board woke up itself, because an internal leak to 3.3V appeared in the night on PA0, causing the wake up

    I have >600 board to produce, I don't know what to do :(