cancel
Showing results for 
Search instead for 
Did you mean: 

How can I decrease the current consumption of STM32L431RBT6?

Akash_k
Associate III

I am using STM32L431RBT6 consuming 2.63mA of current. How can I further reduce the current consumption ?. I am using MSI at 8 Mhz , and peripherals used are SPI1, SPI2, UART and I2C.

2 REPLIES 2
Danish1
Lead II

Do you need to keep the processor running all the time? If not, you could save some current by having it sleep as much as possible and only resume executing code in response to an interrupt with WFI().

Do you need to clock the peripherals at the same speed as the CPU / AHB? Anything on APB can be clocked more slowly.

For I2C, the idle bus should consume little power. But I2C is slow, and all the time either SCL or SDA is low, power will be burned through the pull-up resistors. If SCL and SDA are short and there is little risk of electrical interference, you could increase the value of the pull-up resistors. I often use 10k (or even 47k of the built-in pull-up).

Can you use a lower Vdd? There's a saving here particularly if you use a switching regulator to go from your incoming power to Vdd.

Can stm32l431 have its core fed from an external switching regulator? I use that on stm32l496P and it makes a big saving.

Hope this helps,

Danish

Gabriel Melo
Associate III

That depends on your needs. If you are not always transmitting or receiving, you can put your microcontroller to sleep and wake-up on interruptions (like the CS pin in the SPI communication) or you can use a timer if you transmission times are well-defined.

Apparently also setting the free GPIO pins to analog can improve power consumption.

There is more you can do if you are working with a custom board : try using a step-down converter (not a LDO!!!!) and your current consumption will be lower at a higher voltage. SMPS vesions of the chip (if available) can futher improve the consumption.