In my application I want to give power to an ATmega328p and an MMA8451 accelerometer. When active, these devices require 5.2mA and 24uA respectively, and when in power saving mode, they require 4.20uA and 1.8uA respectively.

I only need to be taking a measurement once every 100ms, so as a result, both components will be in power saving mode most of the time. Also, my main requirement is to make the system as energy efficient as possible. My question is, how can I provide power to these components efficiently? What kind of power supply should I use?

From what I have seen, dc/dc converters' efficiency, even the ultra-low power ones, give an efficiency of 20-40% at 100uA, and give no info about my system's sleeping current level (around 10uA).

Due to application specific reasons, powering the devices directly from a battery is not an option.

EDIT: The project will be powered by a LiPo (3V-4.2V). As a result the accelerometer, which takes voltages up to 3.6V, cannot be connected directly to the battery. Furthermore, the reason behind my idea of using the LiPo and not another kind of battery, is because the application also has an SD card. I will be required to write to the SD card once every few minutes, requiring bursts of 100mA or so, at 3.3V. The reason I did not mention it initially was that I planned to use a different DC converter just for the SD card, because its current requirements are well above the rest of the circuit, and because obviously there is no converter which is efficient from 10uA until 200mA.

  • 2
    \$\begingroup\$ "Due to application specific reasons, powering the devices directly from a battery is not an option". Well, then you better review those reasons, because it is exactly the most efficient option out there. \$\endgroup\$
    – Maple
    May 14, 2020 at 20:58
  • 1
    \$\begingroup\$ Due to application specific reasons If you only have the ATMega and the MMA8451 on your PCB then you can power then directly from a 3 V battery like 2 AA cells in series. But please convince me with your "specific reasons". I ask this because I often see that decisions like this are made for the wrong reasons, like: my ATMega resets when the supply gets below 2.8 V. Then my answer is: re-program the brown-out level to 1.8 V and that's solved. \$\endgroup\$ May 14, 2020 at 20:58
  • \$\begingroup\$ I plan to use a LiPo, which goes from 4.2V to 3V. The accelerometer does not take voltages higher that 3.6Volts. Furthermore, the application will have an SD card, which requires steady 3.3V, and bursts of current of 100mA or so, and that is why I chose a lipo over other batteries \$\endgroup\$
    – NickG
    May 14, 2020 at 21:26
  • \$\begingroup\$ Realize that using a LiPo battery down to 3.0 V might be stressing it. I'd stop at 3.6V and enjoy a longer battery life. I would suggest looking into an LDO, 0.3 V drop at 100mA should be achievable. \$\endgroup\$ May 14, 2020 at 21:36

3 Answers 3


Probably your best bet is going to be to use a linear regulator of the low drop-out variety. These are usually called "LDO's". The parameter you need to scrutinize is the quiescent current, also sometimes given as "Iq". This is the current consumed by the regulator when the output current is zero. Some LDO's have very low Iq of less than 1uA.

Some switching regulators also have low Iq, but the best LDO's will have lower Iq than the best switching regulator. Because of your usage profile, the low Iq will win over the higher efficiency during the brief instant when your devices are not sleeping.


Just insert a forward-biased silicon diode in series with VDD to the sensor, and run that directly from the battery.

Regarding your 100mA bursts:

using I = C * dV/dT

With I = 0.1 amp, dV = 0.5volt (sag in the provided voltage), dt = 10milliSec, we find the necessary LARGE capacitor on the 3.3 volt VDD is

C = I * dt/dV = 0.1 amp * 0.01 second/0.5volt = 0.002 = 2,000 uF


For your specific application I'd recommend powering MCU directly from the battery and the rest of the components via LDO with "enable" pin controlled by MCU. Something like S-1313A33 will only consume 0.1uA in shutdown and with 0.32V drop it will let you discharge down to 3.6V without over-stressing the battery.

This way you don't have to bother with sleeping modes of devices other than MCU, you simply cut off their power.

Keep in mind that you need to 3-state MCU pins connected to other components before powering them down, as many devices do not tolerate inputs higher than VCC.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.