cancel
Showing results for 
Search instead for 
Did you mean: 

STM32G431C6 fails to power up sometimes.

IvanOrot
Associate II

I designed a board that uses the STM32G431C6 and is intended to connect in a chain with other similar boards, but I am having problems when powering them up. They turn on and work fine sometimes, but sometimes boards won't turn on. Each board I designed includes a voltage regulator that steps down 5V to 3.3V to power the STM32G4. I added a jumper between the voltage regulator and the STM32G4 for testing purposes. When observing the Vdd traces, they always turn on correctly at 3.3V. When using the benchtop power supply I can observed the voltage rise curve slow down. To avoid that, I turn on the power supply and then short the power wires with the power supply (+ to + and - to -) to jump start it. This seems to work but if I take out the jumper and put it back, the board wont turn on. Also, if I power multiple boards connected in chain, when disconnecting one from the chain and connecting it back the board wont power. The charge time on both of this test seem to be < 20ms while the power supply start up that failed most of the time was around 600ms. The successful startups when jump starting the boards range also at <20ms.

I am thinking I there might be something wrong with how I designed the Vdd and Vss inputs.

-I have 100nF decoupling capacitors, but they are at the back of the board (close to the stm32g4 tho)
-I did not power VDDA or VSSA (I am not using ADC or DAC)
-I may have placed the voltage regulator output capacitor too far.
-I left NRST and Boot0 pins floating.

These are my candidates but I am unfamiliar with how critical these are to the startup and functioning of the MCU.
Before I make major changes to the board design I wanted to see if someone understand this problem better.

1 ACCEPTED SOLUTION

Accepted Solutions

>>I left NRST and Boot0 pins floating.

Floating BOOT0 is a BAD plan, for slow rising supplies it can be interpreted as HIGH enough

Pull it Low so it tends to zero in all imaginable circumstances..

>>I did not power VDDA or VSSA (I am not using ADC or DAC)

Again another classic issue, the PLL and POR circuits typically use the analogue supplies in most STM32 designs. The STM32G4 looks to be a slightly different beast.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

View solution in original post

5 REPLIES 5

>>I left NRST and Boot0 pins floating.

Floating BOOT0 is a BAD plan, for slow rising supplies it can be interpreted as HIGH enough

Pull it Low so it tends to zero in all imaginable circumstances..

>>I did not power VDDA or VSSA (I am not using ADC or DAC)

Again another classic issue, the PLL and POR circuits typically use the analogue supplies in most STM32 designs. The STM32G4 looks to be a slightly different beast.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
TDK
Guru

Obligatory link to hardware design guide:

https://www.st.com/resource/en/application_note/an5093-getting-started-with-stm32g4-series--hardware-development-boards-stmicroelectronics.pdf

@Tesla DeLorean Design guide suggests PLL/POR use VDD, not VDDA. Maybe you have other knowledge.

If you feel a post has answered your question, please click "Accept as Solution".

> PLL/POR use VDD

That's probably family dependent. I'm not sure about PLL; but POR/brownout is definitively somehow tied to VDDA in at least 'F4.

In families where VDDA is allowed to be 0 when analog portions are not used (which I believe is the case for 'G4), POR is most probably derived from VDD too.

Nonetheless, leaving VDDA floating is IMO at least a bad taste.

Unconnected VSSA is definitively wrong.

BOOT0 definitively needs to be tied low (unless ignored through option bits, which again is family-dependent).

"Fails to power up" is also most probably an incorrect description of the problem, as those chips probably go to built-in bootloader.

JW

IvanOrot
Associate II

It looks like in my previous board I left VDDA and VSSA unconnected but after the rework I was smart enough to power VDDA and VSSA directly from VDD and VSS since I am not using any analog input/output (according to the documentation that is actually recommended when not using them).

I'll be grounding Boot0 pin as suggested. I'll give an update soon. I'm just trying to figure out how to do it, the grounding plane/trace is next to the pin but since the pin legs are so small it might be easier to solder pin boot0 (pin45) to pin 46(unused pin) and pin 47(GND). 

You were right. It was probably going into the bootloader. Now that boot0 is grounded, the STM32G4 runs my program every single time, even when using the power supply and the jumper at the voltage regulator.