Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

STM32F0 Power Consumption and Potential Savings

The STM32s MSXIV drew a maximum current of 120mA at 3.3V, consuming about 396mW.

All AHB peripherals have a total consumption of 52.6μA, and all APB peripherals have a total consumption of 182μA.

The HSI oscillator and LSI oscillators have 350μA (depending on speed) and 1.2μA maximum current consumption.

Tickless Idle Mode on FreeRTOS has anecdotally lowered current consumption below 0.5mA, and STM32’s Stop Mode has lowered current consumption down to 4μA.

Power Saving Features in FreeRTOS

...

The idle task hook is responsible for performing any application functionality at the idle priority. An alternative to using the hook is creating a task that runs at idle priority.

Tickless Idle Mode

...

Code Block
languagec
/*
** ===================================================================
**     Event       :  FRTOS1_vApplicationIdleHook (module Events)
**
**     Component   :  FRTOS1 [FreeRTOS]
**     Description :
**         If enabled, this hook will be called when the RTOS is idle.
**         This is a good place to go into low power mode.
**     Parameters  : None
**     Returns     : Nothing
** ===================================================================
*/
void FRTOS1_vApplicationIdleHook(void)
{
  /* Called whenever the RTOS is idle (from the IDLE task).
     Here would be a good place to put the CPU into low power mode. */
  Cpu_SetOperationMode(DOM_SLEEP, NULL, NULL); /* next external interrupt will wake us up */
}

Stop Mode with the Idle Hook

From researching online, Tickless Idle Mode’s use is primarily to suppress the system tick run by FreeRTOS. Using either the idle hook or an idle priority task, the STM32 can be put into stop mode, which can also disable all clocks as well as most peripherals, bringing power draw down even further.

STM32/MCU Power Saving Features

...