sleep current during BLE advertising

i'm measuring approximately 1.5uA (at 3V3) when sleeping between BLE advertising events, using a program based on one of your the standard examples....

as an experiment, i built a trivial simple program that retains only SRAM blocks 0-1, enables the LFXTAL, and starts the RTC....  when sleeping, this program consumes about 1.68uA....

so now i'm curious as to what is *NOT* power/enabled/retained while the BLE program is sleeping???  

Parents
  • Hello,

    The softevice is not doing anything "hidden" to reduce power consumption in idle mode, and there are no peripherals that would increase the idle current by this little when active. The only configuration I can think of that could cause changes in current draw at this level is RAM retention. The current consumption is typically around 30 nA per 4k of retained RAM.

    Are you measuring on the same chip in both cases, and at exactly the same temperature? Note that ambient temperature can have a significant impact on sleep current.

    Best regards,

    Vidar

  • system_on_idle_test_nrf52.zip

    5775.beacon_advertiser.zip

    the first project is a very small program that simply goes idle, after setting up a limited memory retention as well as enabling LFXTAL and RTC....  when idle, this program ~1.68uA....

    the second project is a large program built around a heavily-modified BLE advertising example....  when run, it only consumes ~1.5uA when idle....

    to simply things even more, i have *NOT* called any of the bt_* functions in the second program; the program simply "goes idle" for ever....

    i have also dumped numerous registers and have yet to find anything that explains why program 2) consumes less power than program 1)....  indeed, program 2) actually retains *all* RAM blocks -- and still does better....  both programs enable LFXTAL; and presumably when program 2) is actually advertising, it uses the RTC for wakeup....

    again, you can even *FULLY ENABLE* BLE advertising in program 2) -- and it still only consumes ~1.5uA when idle....

    though i haven't verified this for both programs, presumably they execute the same SystemInit() function which applies the various errata....

    same nrf52K board, using a PPK2 to measure current....

    i'm at a loss to find an explanation for the lower current in program 2)....

Reply
  • system_on_idle_test_nrf52.zip

    5775.beacon_advertiser.zip

    the first project is a very small program that simply goes idle, after setting up a limited memory retention as well as enabling LFXTAL and RTC....  when idle, this program ~1.68uA....

    the second project is a large program built around a heavily-modified BLE advertising example....  when run, it only consumes ~1.5uA when idle....

    to simply things even more, i have *NOT* called any of the bt_* functions in the second program; the program simply "goes idle" for ever....

    i have also dumped numerous registers and have yet to find anything that explains why program 2) consumes less power than program 1)....  indeed, program 2) actually retains *all* RAM blocks -- and still does better....  both programs enable LFXTAL; and presumably when program 2) is actually advertising, it uses the RTC for wakeup....

    again, you can even *FULLY ENABLE* BLE advertising in program 2) -- and it still only consumes ~1.5uA when idle....

    though i haven't verified this for both programs, presumably they execute the same SystemInit() function which applies the various errata....

    same nrf52K board, using a PPK2 to measure current....

    i'm at a loss to find an explanation for the lower current in program 2)....

Children
Related