Showing results for 
Search instead for 
Did you mean: 

how to reduce inrush current when stm32 powering up?

Associate III


As the title described, how to mitigate the current behavior when stm32 is applied power? My commercial power system are quite sensitive when MCU is power on.

For example, let stm32 enters into low power mode once power is on and then control the chip enter into fromal user mode. Would that help?



Andrew Neil
Evangelist III

The datasheet will tell you what the default clock configuration is at startup; eg,



See also the Reference Manual:



So, of course, you can work it from there.

Uwe Bonnes
Principal III

Recent families often have inrush current/charge specification in that situation. But you do not tell us, what current changes distrube your "commercial power system" Are you sure your problems are caused by this problem?

Hi Uwe,

The commercial power system(to be specifically, it is a power supply made according to uTCA system and spec)has very limited 3.3V power supply.  And it has over current protection ~180mA. And when my board(3.3V powered MCU assembled on it) powered up, it easily triggered the over protection behavior. So I suspect the inrush current of 3.3V(mostly consumed by MCU) may cause this problem, that's why I post it here to find a way to reduce inrush current.

Lead II

When you first apply power - before your microcontroller can do anything - the power you apply charges up all the power-supply-decoupling capacitors in your system.

The handful of 0.1uF high-frequency decoupling capacitors are probably not the issue here.

More likely if you have 10uF to 100uF of electrolytic (or more) before or after the 3.3V regulator, they will contribute a huge amount to the inrush current, possibly enough to trip your overcurrent detector.

What stm32 microcontroller are you using? Many would not burn as much as 100 mA when running flat-out, so there's little you can do to fix things there.

It would be handy to measure the current - put a small (say 1 Ohm) resistor in series with the power line to your mcu board and measure both before and after the resistor with an oscilloscope. Is the highest current in the first millisecond or two of applying power, or does it happen (say) 10 - 100 ms later? If the latter, it could indicate that it is the mcu software startup, but do show us the results.

Another issue - does your mcu switch / drive high currents? Until it has started running your code, the GPIO outputs will be high-impedance. Do you have resistors to ensure any driver switches are turned off during the time the processor is in reset?

Finally I will add that until you have first programmed the stm32, it will start up in ST's bootloader. This drives certain pins as e.g. UART, I2C; see AN2606 STM32 microcontroller system memory boot mode  for which pins are driven and how. This may also cause high currents depending how you use those pins.

@Danish1 wrote:

What stm32 microcontroller are you using? Many would not burn as much as 100 mA when running flat-out

Indeed - and they (mostly?) don't start up running flat-out.


@JKW wrote:

I suspect the inrush current of 3.3V(mostly consumed by MCU) may cause this problem, 

So you really need to confirm that suspicion - otherwise you might be on a wild-goose chase ...

As @Danish1 said, you need to take some measurements - whether monitoring the current using a simple shunt (as he described), or something more sophisticated like an STLINK-V3PWR: 

Sounds like you need either a better power supply or some actual startup data instead of just guessing it's the MCU.

yes, current measurement with current probe is next step.

Hi Andrew,

Thanks for the suggestion. Current measurement with current probe is an option, but we do not have it now, placing order for it takes us 10 days more.

Monitoring the current using a simple shunt needs PCB routing damage in our design, it's the least method we want to do.

Do you have any other cost saving idea?