nrf52833 failed to wake up from SOFT_OFF

Dear all,

I am developing a device that base on nrf52833, nrf connect sdk ver 2.0.0

The device run bluetooth mesh. And becase it was powered  by battery, so it must go into sleep mode, and wake up by GPIOs in specific scenarios.

This is the function that put the device into sleep mode

void app_system_sleep(struct k_work *work_tem) {
	nrf_gpio_cfg_sense_input(wake_pin_1, NRF_GPIO_PIN_NOPULL, NRF_GPIO_PIN_SENSE_LOW);
	nrf_gpio_cfg_sense_input(wake_pin_2, NRF_GPIO_PIN_NOPULL, NRF_GPIO_PIN_SENSE_LOW);
	
	LREP(__func__,"Entering system off");
	bt_mesh_suspend();
	
	const struct pm_state_info si = {PM_STATE_SOFT_OFF, 0, 0};
	pm_state_force(0, &si);

	k_sleep(K_MSEC(100));
	
	LREP(__func__, "Exit sleep mode");
	NVIC_SystemReset();
}

After the deviced run for about 1-2 days, It failed to wake up via wake_pin_1 and wake_pin_2. And I must re-power it.
One thing I am not sure, when the device went into this error, Its current consumsion is about 500uA.
Please help me.
Best regards.
Parents
  • Hi

    It seems like you're trying to set a timer as the wake up source after going to system OFF. When the nRF52 series devices are in system OFF, the CPU and all peripherals like timers, etc. are disabled entirely. Also, is this LREP a custom define you have made, because it seems a bit out of place here. I would strongly recommend checking out the nRF5x System OFF demo in NCS here, that shows a good way of going to system OFF.

    Best regards,

    Simon

  • Dears,

    Thank you for your prompt response.

    It seems like you're trying to set a timer as the wake up source after going to system OFF

    I am not tryting to wake up by a timer. I only have two GPIO working as wakeup source (GPIO inputs).

    Also, is this LREP a custom define you have made, because it seems a bit out of place here.

    This is my debug function via RTT. I have tested when enable or disable CONFIG_CONSOLE and CONFIG_RTT_CONSOLE.

    I would strongly recommend checking out the nRF5x System OFF demo in NCS here, that shows a good way of going to system OFF.

    Yes I already checked the demo.

    I think problem might because of the bluetooth mesh. 

    When my device is not provisioned, it is working fine. The issue was only after the device is provisioned.

    I am trying to locate the problem.

    Do you have any idea? 

    Best regards.

Reply
  • Dears,

    Thank you for your prompt response.

    It seems like you're trying to set a timer as the wake up source after going to system OFF

    I am not tryting to wake up by a timer. I only have two GPIO working as wakeup source (GPIO inputs).

    Also, is this LREP a custom define you have made, because it seems a bit out of place here.

    This is my debug function via RTT. I have tested when enable or disable CONFIG_CONSOLE and CONFIG_RTT_CONSOLE.

    I would strongly recommend checking out the nRF5x System OFF demo in NCS here, that shows a good way of going to system OFF.

    Yes I already checked the demo.

    I think problem might because of the bluetooth mesh. 

    When my device is not provisioned, it is working fine. The issue was only after the device is provisioned.

    I am trying to locate the problem.

    Do you have any idea? 

    Best regards.

Children
No Data
Related