Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

high current consumption in emulated system off

Hi,

I am using nordic nrf52832 nRF5_SDK_14.2.0, I use the RTT for debug, I want MCU in low power mode,so I add the following code:

while(1)

{

  NRF_POWER->SYSTEMOFF = 1;

}

when running this loop, the power consume from 15.25mADC to 11.48mADC

But when I use the following code:

while(1)

{
__SEV();
__WFE();
__WFE();
NRF_POWER->SYSTEMOFF = 1;

}

when running this loop, the power consume from 15.25mADC to 9.14mADC

Why these two loop consume different  current ?

Except the nordic chip, It also have four chips in my PCBA , sorry I am the new user, can someone answer me?

  • Hi,

    SEV will set local event register to 1. First WFE will read this register, clear it and finish immediately. Second WFE will suspend CPU until wake up event is received by this CPU. See Cortex-M4 specification to get more information about these functions.

    In second case CPU will be suspended on WFE unless something wakes it up. After wake up it will switch to power off mode. In the first example CPU will enter power off mode straightaway. Note that to exit power off mode CPU will have to be reset (see nRF52832 documentation for more information).

    Above will happen unless you are working with debug mode activated. Please read "18.2.1 Emulated System OFF mode" section in nRF52832 documentation. If it is so SoC will not really enter power off mode and you first case will convert to a busy loop. The loop from second case will at least be suspending CPU for some time, reducing power consumption.

    Apart from that I cannot say what is causing the current consumption difference.

    Thanks,
    Pawel

Related