Electronic – dynamically change STM32 voltage during runtime

low-powerstm32voltage-regulator

I'm using an STM32L151 MCU for a battery powered wireless sensor node. I came across the TPS6274x series switching regulator, who's voltage can be reconfigured at runtime by flipping it's inputs. The radio I'm using can only transmit with full power with 3.3v, but it can transmit at slightly lower power at 1.8v. All of my sensors can run down to 1.8v.

Does it make sense to use the control pins of the TPS62740 to boost up to 3.3v only during radio transmission and enjoy the power savings of the 1.8v the rest of the time? What are the implications for the RTC or clock speeds? Do I just need to update the clock configurations when boosting, or are they just good to go?

Best Answer

This is actually a common technique for low power design. It is called DVFS, dynamic voltage and frequency scaling. However, I am not sure what all the implications are of changing the supply voltage while operating. You well have to make sure the switchover is glitch free at the least. Check the MCU specs for what frequencies are allowed at what voltages. So long as you choose one that works at both voltages, you should not have to change the clock settings. Everything will consume more power when running at the higher voltage, though.

What might be a better idea is to run everything at 1.8 volts and then have some power supply switching components to select the supply voltage for the radio, then use a level shifter chip to connect the radio to the rest of the circuitry. At those voltages, simple ORing diodes will have too much drop, so you will probably want back to back pairs of PMOS transistors or dedicated power supply switch chips. Don't forget that you can also control the enable pin on the regulator to turn that off as well.