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

  • Hy stefan, i try to reduce the power consumption. I use nrf_drv_twi_disable(&lI2c_instance); to disable I2C and set
    NRF_UART0->TASKS_STOPTX = 1; NRF_UART0->TASKS_STOPRX = 1; NRF_UART0->ENABLE = 0;

    to disable the uart. When dsable the uart the consumption decreases from 1 mA to 200uA when disable the i2C there are not change in power consumption. Why?? i can see also that when the device go in advertising the consumption is 500 uA. It is right?

    Thanks, Anna

  • Hi Anna

    Getting low current consumption is often much of a trial and error method. To find out if the 200uA are caused by the I2C you could try not to initialize it in the first place. If you still get 200uA, then the current consumption is caused by something else.

    Advertising current consumption varies a lot and it all depends on your advertising interval. Look at the current consumption guide, section about "Calcualate/Estimate current consumption" and section about "Tuning Advertising parameters".

    Seems you are disabling the UART manually. Perhaps you are copying my advise in the current consumption guide where this code is included. If you however use uart driver to initialize your code it is probably best to uninitialize the driver instead of disabling the UART manually.

  • I disable the initialization of uart and i2c, and i see a consumption of 300uA when advertising stop. With advertising starts current increase to 520uA: I have a timer that wakeup the device after 20 seconds from the end of advertising and RTC, but i think that the consumption is still high.

    Thanks, Anna

  • Hi Anna

    You generally have number of modules running. Try to not enable modules in the first place and measure the current consumption and verify it is low. You should be getting <5uA when not advertising and no other modules enabled. I am not sure what example code your application is based on but if you measure current consumption on e.g. the ble_app_template example in the SDK, you should see the <5uA between advertising events. So you need to reverse engineer your application, strip down everything you have coded and start out with application that gives expected current consumption. Then gradually add your modules and measure current consumption in each step in order to see what module is to blame for the high current consumption. If you have high current consumption when using standard example that should give low current consumption, then something is wrong with your hardware.

  • Hy Stefan, i starts with gls example and add the cts service to have a data and time for my log. I try to run more example of SDK on evaluation board nrf52. I see that when it's not in advertising the consumption is 60uA, but in example use a power off. In my project the idea is use a power on because the system wake up with a timer and with a press button. For this reason i use system On(sd_app_evt_wait) and run the some project but chang power_off in power On the consumption become 500 uA :(. I use a evaluation board nrf52.

Related