This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

[Current consumption with sd_app_evt_wait]

Hi all,

i use a nrf52 and in product specification i find the table about the low power mode and their consumption . Capter 17.1.

  • ION_RAMOFF_EVENT System ON, No RAM retention, Wake on any event 1.2 μA
  • ION_RAMON_EVENT System ON, Full RAM retention, Wake on any event 1.5 μA
  • ION_RAMOFF_RTC System ON, No RAM retention, Wake on RTC 1.9 μA
  • IOFF_RAMOFF_RESET System OFF, No RAM retention, Wake on reset 0.7 μA
  • IOFF_RAMOFF_GPIO System OFF, No RAM retention, Wake on GPIO 1.2 μA
  • IOFF_RAMOFF_LPCOMP System OFF, No RAM retention, Wake on LPCOMP 1.9 μA
  • IOFF_RAMOFF_NFC System OFF, No RAM retention, Wake on NFC field 0.7 μA
  • IOFF_RAMON_RESET System OFF, Full RAM retention, Wake on reset 1.0 μA

I use in my code the sd_app_evt_wait(), but i don't understand how go in sleep and then the consumption that i must expect.

Someone can, please give me a clarification, about this? Thanks, Anna

Parents
  • Hi Anna

    Please look at the explanation in the nRF51 current consumption guide, section about "Low power mode with BLE softdevice". That should explain how nRF51/nRF52 sleeps and wakes up with sd_app_evt_wait(). The sd_app_evt_wait() function actually just disables the CPU of nRF51/nRF52.

    The current consumption to expect when softdevice is enabled and when in sleep mode is the sum of the following factors:

    • System On base current -> 1.2 uA
    • RAM retention when sleeping - configurable but by default 0.3 uA with all RAM is retained
    • Consumption of RC low frequency clock source (LFCLK)+ RTC -> ~0.7 uA
    • Consumption of external crystal low frequency clock source (LFCLK)+ RTC -> ~0.35 uA

    So the expected current consumption should be: System ON, full RAM retention, Wake on RTC (with external crystal) -> 1.2+0.3+0.35=1.85uA

    The nRF51-DK has 32kHz external crystal as source for the low frequency clock so 1.85uA is the expected current consumption value when using nRF52-DK

  • Then try to disconnect the programmer and use a firmware that does not configure any GPIOs. Try for example the peripheral template_project in the SDK and just apply

    __WFE();
    __SEV();
    __WFE();
    

    in the main loop to disable the CPU. Then try to go from there, add functionality to your application, measuring current consumption in each step to see what module or hardware causes the current consumption.

Reply Children
No Data
Related