Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Power consumption nRF52 #35360

Closed
StevenGhe opened this issue May 17, 2021 · 6 comments
Closed

Power consumption nRF52 #35360

StevenGhe opened this issue May 17, 2021 · 6 comments

Comments

@StevenGhe
Copy link

StevenGhe commented May 17, 2021

Hello there,

Past few days/week I've been looking into how to limit power consumption using my Adafruit Feather Express nRF52840. I've asked in the general Slack but no response.

Currently I have about 1.1 mA current idle, and I'd like to 'sleep' the device as much as possible.
Looking at the Power Management section from Zephyr I understood you can either choose to set a power state to the system or to certain devices from your system.

Using pm_power_state_set() I'm able to set the power state. However after testing and looking into the code, nRF52 only supports SYS_POWER_STATE_DEEP_SLEEP_1 which results in powering the system completely off (relevant power.c file). This is too much, as I'd like to keep the memory/context the same.

Is there another way of putting this device to sleep besides pm_power_state_set? As I'm using the bluetooth stack, as far as I am aware there is no Bluetooth device in my build. There is no way to way to disable bluetooth (related issue on disabling Bluetooth), so I'm kind of stuck, unable to limit power consumption.

Sorry if this 'blank' issue is related to a certain topic, I was not sure which one it belonged to.

Thanks in advance,

Steven

@gmarull
Copy link
Member

gmarull commented May 17, 2021

@ceolin
Copy link
Member

ceolin commented May 17, 2021

Based on first comment in #31162 this seems to be the only runtime state supported by Nordic boards. @gmarull do you know if this target supports other states that are just not implemented ?

@ceolin
Copy link
Member

ceolin commented May 17, 2021

@StevenGhe btw, you are probably using an old Zephyr version. The way pm states are implemented now is very different.

@StevenGhe
Copy link
Author

As soon as I looked at the sample gmarull showed, I realized that the newer versions indeed have a lot of changes.

Quite sure I will be able to do some sleep/idle current reduction with the presented sample, if any issues arise I will make another ticket :).

@ceolin, the reason I created this ticked that other power.c files like for example this stm32l4 one had way more features. And given the nRF52 popularity it seemed weird it had next to nothing.

@ceolin
Copy link
Member

ceolin commented May 17, 2021

@StevenGhe the states implemented by each platform may vary, keep this in mind. This depends on watch each hardware supports.

@gmarull
Copy link
Member

gmarull commented May 17, 2021

@StevenGhe would you mind closing the issue if it answers your questions? Feel free to open other issues or post to https://github.com/zephyrproject-rtos/zephyr/discussions

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants