8 years, 9 months ago.

NUCLEO F401RE running via 9 V battery sucks around 80 mA - how to reduce?

Hello,

my NUCLEO F401RE is being fed by a weak 9 V battery. I noticed that the naked board swallows around 80 mA already. I was wondering how to reduce this in an easy fashion (preferably), considering that a 9 V battery doesn't have that great a capacity to begin with.

Is there a way to turn down the clock (I don't need much processing power). I have to add that I'm using the internal source (no external crystals)? If so, can this be done "on the fly" (i.e.: changed while running)?

Alternatively: Can you point me to an example on how to put it into sleep mode via mbed and wake-up by button press?

Thank you very much!

I found this: https://developer.mbed.org/users/jose_23991/code/Nucleo_Sleep/file/4d80b159d444/main.cpp I will try to take it from there and use sleep. How about PWM output, is this affected by sleep or deepsleep?

posted by L. Volpato 02 Mar 2016

2 Answers

8 years, 9 months ago.

The STM32F4xx MCU's are not really for low power. However the STM32L476 are more suited. The MCU runs at around 12mA and will achieve 6uA in deep sleep allowing timer wake up.

I find the best energy efficiency is to run the MCU at full speed to run your code, then spend the rest of the time in deep sleep when idle, waking up only to update as you need. One example I have running will power a Sharp Memory LCD and a few sensors in this mode will give me around 1 year using 1000mA 4.2v Li-Ion cell.

The other consideration is you will have to modify your Nucleo board so that you do not power the interface MCU as this is running all the time.

Accepted Answer

I found this: https://developer.mbed.org/users/jose_23991/code/Nucleo_Sleep/file/4d80b159d444/main.cpp I will try to take it from there. What about PWM output, does it keep running during sleep or deepsleep?

posted by L. Volpato 02 Mar 2016

Here is a timer wake up API that does work, however it does use the RTC so a 32KHz crystal will be needed.

https://developer.mbed.org/users/Sissors/code/WakeUp/

Not sure about the PWM, but you will soon find out when you try :)

posted by Paul Staron 02 Mar 2016
8 years, 9 months ago.

So did you modify the Nucleo board + code to run off the internal clock? What clock speed did you end up choosing? You should run the clock as slow as possible and turn off the PLL to save power.

If you check the STM32L476 target, there are some low power running options in their examples that will drop the clock to lower speed on HSE and HSI. But you will still be using mA's. For low energy, best to run your code dynamically using full speed and deep sleep with timer wake up. I tend to fit the crystals and clock from these, more accurate.

posted by Paul Staron 02 Mar 2016