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

nRF52832 system powers off and wakes up it

Hi everyone,

I am developing a remote control using nRF52832 chip. My prototype is currently developed in PC10040 board. The IDE is Eclipse Oxygen, and the SDK is S132 v5.0.0.

I am trying to power off my system using NRF_POWER->SYSTEMOFF = 0x01; when I press a button and then, by pressing that button again, the system will wake up and cause a reset. The problem is when I press the button for the first time, the system seems to reset unstoppable, even when I press the reset button or turn off and then turn on the power again, it is still reset continuosly.

Could you help me please? Thanks

Parents
  • Well we will hardly help you not knowing what exactly you do in your code before you try to send the chip to SYSTEM OFF. E.g. if you are using Nordic BLE stack and Soft Device is enabled you cannot write to these registers directly but use dedicated sd_power_system_off() function as per API description. Note that this isn't magic cure to every problem with SYSTEM OFF mode, you need to take care about initialization/deinitialization of some things (at least that's my experience). Also for wake-up you need to set the PIN specifically. Have you seen the power management example from nRF5 SDK? Can you make your application working in the same way before even using BLE stack (Soft Device)? Only then you should try to achieve the same flow but with BLE stack enabled.

  • Maybe you need some delay but having it done through some timer lib would be better. Anyway this is single function but what about the rest of your project? i recommend to firstly implement this "button press -> SYSTEM OFF -> button press -> SYSTEM ON" in some of SDK examples where you can easily get support here. Once it works and you see on UART debug line or similar that no reset or unintended wake-ups happen then you can port the code to your FW easily.

Reply
  • Maybe you need some delay but having it done through some timer lib would be better. Anyway this is single function but what about the rest of your project? i recommend to firstly implement this "button press -> SYSTEM OFF -> button press -> SYSTEM ON" in some of SDK examples where you can easily get support here. Once it works and you see on UART debug line or similar that no reset or unintended wake-ups happen then you can port the code to your FW easily.

Children
No Data
Related