Deep Sleep Mode and wake Up(standby mode) on Button press and run in normal mode (nRF9160)

Hi,

I am using thingy91 with NCS V2.4.0 SDK.

I have enabled settings for my devices mode store in flash. for mode of my device i created one settings variable.

first time power up device by default in deep sleep mode. and when we press button more then x time. device wake up and write setting flag -> normal mode. and reboot. 

after every power cycle device boot in normal mode. that cycle i am trying to implement.

void enter_deep_sleep(void)
{
    int err = 0;
    const struct pm_state_info si = {PM_STATE_SOFT_OFF, 0, 0};
	printk("Entering deep sleep\n");
	k_sleep(K_MSEC(100)); // Add a delay to allow logs to be printed

    // pm_state_force(0, &si);
    // pm_system_suspend(0, 0);
    // nrf_regulators_system_off(NRF_REGULATORS_NS);
	printk("Shutting down modem\n");
	err = nrf_modem_at_printf("AT+CFUN=0");
	if (err) {
		printk("AT+CFUN failed\n");
		return 0;
	}
	nrf_modem_lib_shutdown();
    // lte_lc_power_off();
    k_sleep(K_SECONDS(1));
    // nrf_regulators_system_off(NRF_REGULATORS_NS);
    pm_state_set(PM_STATE_SOFT_OFF, 0);
    // pm_system_suspend(0, 0);
    // nrf_power_system_off(NRF_POWER);
}

I have try this code for enter sleep mode. before enter_deep_sleep intialise button interrupt and call back function detect x sec botton precss and change setting flag.

this scenario work for Normal mode -> sleep mode. but sleep mode -> normal mode not able to detect Button state. so not working.

first of all i need to know this flow is fine as per my requirement. if not then give some suggestion and also let me know what things missing in flow.

Thanks

Parth

Parents Reply Children
No Data
Related