This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

The right way to enter to the system off mode

Hello,

In my application I'm putting the NRF52832 device to the system off by calling the sd_power_system_off() function.

When it occurs at the start of the program - the device enters to the system off (about 4mA man!!!), but when I try to put the device to the deep sleep at the other places (much more later, after advertising, some work and etc.) the function sd_power_system_off() returns NRF_ERROR_SOC_POWER_OFF_SHOULD_NOT_RETURN and system is not entering to the deep sleep.

I have two questions:

1. What the RIGHT way to put the system into the deep sleep (system off)??? (urgent)

2. 4mA at the deep sleep it's very high value - what I'm doing wrong?

Thanks a lot!

UPDATE! UPDATE!

I found the next words in the documentation:

Before entering System OFF mode, the user must make sure that all on-going EasyDMA transactions have been completed. This is usually accomplished by making sure that the EasyDMA enabled peripheral is not active when entering System OFF.

How can I check that all transactions are finished? How can I disable the EasyDMA at all, before putting the system into the deep sleep?

UPDATE! UPDATE!

I'm entering to the System Off mode by calling sd_power_system_off(), without checking the return code and after that I place the infinite loop while(1);

Is it correct way?

Related