current consumption in k_sleep

Hi,

we have a custom board with the nrf54l15 and are doing power optimizations for standby. Our device will never go to SYSTEM OFF as the init draws to much power.

We expect a difference between SYSTEM ON idle and SYSTEM OFF of around 2µA, but we measure a difference of 17µA while sleeping with with k_sleep compared to sys_poweroff.

We checked all peripherals we used, but they seem disabled. Any ideas, where the 17µA could result from? Is there some code/tool, that goes through all peripherals and states what is still active?

Parents Reply Children
  • Could you read out the GPIOTE configuration and INTEN registers as well?

  • I probably solved it. When using LEVEL interrupt, the ISR work item was never executed as the pin interrupt was not cleared, as the work item would write to the sensor.  Can I suggest to include the interrupt configuration in any of the dev academy courses? The information regarding power consumption, LEVEL vs. EDGE,  sense-edge-mask and port vs. input and GPIO vs GPIOTE seems a little bit scattered around.

    Also, is there any information on the latency introduced by using the sense mechanism? Or the minimun pulse duration? And is it possible to reconfigure the sense-edge-mask during runtime?

  • Good to hear, thanks for the update. With LEVEL triggering the interrupt will keep firing until the input signal is de-asserted. What you probably want in your case is to use GPIO_INT_EDGE_TO_ACTIVE in combination with the "sense-edge-mask" DT property. I agree that the information is a bit scattered, but we are actually already planning to include this in a devacademy course.

    The minimum pulse duration is about 10 us currently (you should add some margin here), but we have updated the drivers to support using the Latch detect mode which will shorten the required pulse with to around 1 us.

    Driver update: https://github.com/nrfconnect/sdk-zephyr/pull/3898

Related