cancel
Showing results for 
Search instead for 
Did you mean: 

How do I get low power consumption/low current consumption in stop mode (STM32L100CDiscovery board)?

Mavoodoo
Associate II

Dear fellow STM32 users,

I've Managed to get the current consumption on my l100C discovery board down to 3.8µA with only the RTC running on the LSI. Steps that I've performed so far:

  • Removed r27 on the Discovery Board (connected to BOOT0 pin - it was drawing almost 300µA!)
  • enabled RTC and connected to LSI oscillator
  • Disabled debug module in CubeMx
  • Disabled all peripherals except GPIO PINC8 (Blue LED) in CubeMx
    • other gpio's are in reset state (I think this means they're in GPIO_MODE_ANALOG)
  • Configured an RTC wakeup interrupt every second (should not affect consumption)
  • Used HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON,PWR_WFI)
    • using PWR_MAINREGULATOR_ON instead will speed up wake up, but adds around 15µA(!) during stop mode
  • Disabled PVD and BOR (minimal effect on current)

What can I do to get the consumption down to the 1.5µA promised in the datasheet? Is it a Software issue or are there leaky capacitors on the discovery board?

Thanks in advance for any hints. :)

3 REPLIES 3
Uwe Bonnes
Principal III

What happens if you disable PINC8 too?

Mavoodoo
Associate II

Hi Uwe,

just tried it - no measurable difference in consumption...

Mavoodoo
Associate II

I managed to achieve around 3.8µA on the STM32L100CDiscovery board in stop mode incl. LSI clock and BOR, but no PVD or DEBUG. Here's how in case someone has a similar issue:

  • set all unused pins as analog inputs -> including PH-0 and PH-1 (which are the pins for the external oscillator). It is not enough to disable the external oscillator in cube MX. This is not done by default in CubeMX! (this made up to 100µA difference to me - PH-0 and PH-1 alone up to 30µA)
  • disabling DAC and ADC (using HAL_***_DeInit()) made around 3µA difference.
  • disable PVD (if not needed). I used HAL_PWR_DisablePVD() (not tested how much of a difference this makes)
  • Use HAL_EnableUltraLowPower() (not tested how much of a difference this makes)
  • Use HAL_DisableFastWakeUp() (not tested how much of a difference this makes)
  • HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON,PWR_WFI)

When I originally posted my question, my biggest mistake was to not set PH-0 and PH-1 as analog inputs.