Current consumption difference - nrf5340 running at 128MHz vs 64MHz

128MHz

64MHz

Hello,

While working on optimizing battery life, i noticed something strange.. This particular code actually does almost nothing other than setting low power mode (instead of low latency) and mostly system is sleeping (don;t worry about the fact that current consumption is not in single uAs).

nrF Connect SDK 1.9.1
Custom board with nrf5340-CLAA-R7
Used PPK-II to get the screenshots pasted above.
Secure build.. BLE image with both cores flashed (But BLE is disabled.. I do not call bt_enable)


1. First image (where you see current spikes up to 4mA, the CPU runs at 128MHz.. Second image is the case where we run with default 64MHz clock. The only difference bwteen the two cases is the following line of code.

  //make sure application CPU core is running at 128MHz
nrfx_clock_divider_set(NRF_CLOCK_DOMAIN_HFCLK, NRF_CLOCK_HFCLK_DIV_1);

and I comment it out when i like to run at default 64MHz clock..

Questions:

1. Is the API used to configure the system to run at 128MHz correct ?

2. I read one line somewhere that said not only will CPU consume more power while running at 128MHz, sleep current will be higher too.. is the difference in consumption shown above in line with what you think it should be  ? Baseline current difference is almost 4x 

3. There is a spike every 170ms or so.. Like I mentioned, my system is doing absolutely nothing other than zephyr booting, setting low power, shut down some of the peripherals (that were enabled using prj.conf .. like I2c, spi1 etc.).. The spike is up to 4mA while running with 128MHz but only about 180uA while not running at 128MHz..  Any idea what this could be  and why every 170ms  and why the difference in current consumption to that extent ?


Related