Complete model of nrf52 core power modes.
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

Complete model of nrf52 core power modes.

by DvDriel on Mon Sep 27, 2021 10:16 am

Hi All,

First of all, thank you for reading this. I have been reading a lot of threads and documentation online, but I haven't been able to gain a complete understanding of what I'm dealing with. For a project I'm working with a nrf52832 and the Adafruit nrf52 Arduino core. I'm trying to understand how to properly get the mcu in and out of its different power modes.

As far as I can tell my preferred power modes are the default SYSTEM_ON when my application is running and broadcasting, and SYSTEM_OFF when sleeping. On a fixed interval the mcu should wake up, read data, broadcast and go back to sleep.

My questions:

1. How to get the nrf chip actually into SYSTEM_OFF mode? I have implemented this approach: https://github.com/beegee-tokyo/SX126x-Arduino/blob/master/examples/Low_Power_Example.md using semaphores to get the chip (supposedly) into a low power mode. Is there anybody that can explain in more detail what happens under the hood when all tasks in FreeRTOS are blocked? Does it go into SYSTEM_OFF mode or into the SYSTEM_ON low power sub-mode?

2. After it got into the "sleep mode", how is it woken up? In the linked example, the semaphore is given in an ISR, which should 'wake up' the blocked task. Will the mcu actually get woken up like this? Again, is there anybody that knows how this works under the hood?

3. How do you control RAM retention using the Adafruit nrf52 Arduino core?

Any explanation or referral to information is highly appreciated. I, unfortunately, do not have an academic background in embedded software, which makes putting together all the separate pieces of information quite a challenge.

Thank you in advance,

Posts: 1
Joined: Mon Sep 27, 2021 9:34 am

Please be positive and constructive with your questions and comments.