This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Excessive current in System ON, Idle mode

I am seeing excessive current in System ON, Idle mode. I am using WFI(). I have verified that operation is being held at that instruction by using GPIO pin. Idle mode is exited by either the RTC or GPIOTE PORT interrupt. LOWPWR mode is enabled.

nrf_gpio_pin_clear(PIN_TESTPOINT19);

__WFI(); // Enter sleep mode until an interrupt is received. RTC/GPIOTE interrupts are enabled

nrf_gpio_pin_set(PIN_TESTPOINT19);

Scenario 1: Wake up every second, do some housekeeping, go back to sleep

Idle current: <200 uA (too low for decent measurement) Run current: ~3.5 mA

Scenario 2: Wake up every second, go into ESB receive mode for 6 ms, then go back to sleep nrf_esb_disable() is explicitly called before sleep.

Idle current: ~12 mA

Run current: ~27 mA

Tried adding NRF_RADIO->POWER = 0 after nrf_esb_disable call completes. No effect. Also tried using __SEV()/__WFE()/__WFE() instead of __WFI()

Why is the Idle Current in Scenario 2 so high? It looks like something else needs to get shut off. I have tried to power down Timer2, but that seems to kill the ESB. This might account for a few hundred microamps, but there are still several unacounted for milliamps. I have power-cycled the system, so I know that I am not in DEBUG mode. Also, the current in Scenario 1 verifies that setting.

Any suggestions?

Parents Reply Children
No Data
Related