How to put da14695 into extended sleep mode and verify it

Learn MoreFAQsTutorials

5 posts / 0 new
Last post
jagath52
Offline
Last seen:1 day 31 min ago
Joined:2020-07-06 10:40
How to put da14695 into extended sleep mode and verify it

Hello

I am using da14695 controller with WiRa sdk and social distancing tag example and it has timer and i2c peripherals in project.

By default sleep mode used by example is extended sleep mode.

But the active mode and extended sleep mode is both taking same amount of current. How to verify that the controller is gone into extended sleep mode. How much max current will take in that sleep mode.

Will hardware timer and i2c peripherals and its pins has to be deinitilized before putting into extended sleep mode.

Please mention procedure to put the controller into extended sleep mode and to verify it.

Thank you

Device:
PM_Dialog
Offline
Last seen:28 min 18 sec ago
Staff
Joined:2018-02-08 11:03
Hi jagath52,

Hi jagath52,

Please take a look at theDA1469x Power Consumption Tutorial. The purpose of this document is to describe the procedure of performing measurements of power consumption for the DA1469x family products.

Thanks, PM_Dialog

jagath52
Offline
Last seen:1 day 31 min ago
Joined:2020-07-06 10:40
Hello sir

Hello sir

Thank you for the replay

我想了解延长睡眠模式works and the plan is to use or put the device in extended sleep mode when ever i want.

In document the extended sleep mode is in between radio events. But i want to put the device into extended sleep mode at any time and it has to wake up from extended sleep mode at any time.

I am able to put the controller into extended sleep at any time but after wake up i need to know, after wake up from extended sleep mode from where the execution starts.

The assembly language function "deep_sleep" is used for both to put the controller in sleep and to wakeing from sleep but by default timer is used for intrrupt.

I want to use gpio for wakeup

Thank you

Jagath

PM_Dialog
Offline
Last seen:28 min 18 sec ago
Staff
Joined:2018-02-08 11:03
Hi jagath52,

Hi jagath52,

Please take a look at theDA1469x Tutorial External Interruptiontutorial from the DA1469x support page. The tutorial aims to demonstrate how to use the wake-up controller to handle a gpio interrupt and wake-up the system. The button_interrupt_cb() will be executed in handling mode.

Thanks, PM_Dialog

jagath52
Offline
Last seen:1 day 31 min ago
Joined:2020-07-06 10:40
Hello PM_Dialog

Hello PM_Dialog

I am referring the same tutorial for external interruption from exteneded sleep mode.

I am getting stuck after waking up from extended sleep mode.

During normal controller operation the sleep mode will be in active mode which is set in system_init() -- pm_sleep_mode_set(pm_mode_active)

Whenever required i want to change the sleep mode to "pm_mode_extended_sleep" using same api. In this case still advertisment is present.

So what i have done is whenever i want to switch to extended sleep mode i am suspending the sdt_ble_events_task(), stopping the advertisment then switching to exteneded sleep mode pm_sleep_mode_set(pm_mode_extended_sleep). Then in callback which is used to wakeup from extended sleep mode i have to resume the task and start the advertisement.

But after waking up from extended sleep mode if i call ble_gap_adv_start(GAP_CONN_MODE_UNDIRECTED) and OS_TASK_RESUME(handle) the system is hangng.

in sdt_ble_events_task() function i am enabling this block at any time so that controller goes to extended sleep mode

{
ble_gap_adv_stop();
pm_set_wakeup_mode(false);
pm_sleep_mode_set(pm_mode_extended_sleep);
pm_set_sys_wakeup_mode(pm_sys_wakeup_mode_slow)
OS_TASK_SUSPEND(OS_GET_CURRENT_TASK());

}

I am using wakeup from gpio

void button_interrupt_cb(void)
{
hw_wkup_reset_interrupt();
pm_sleep_mode_set(pm_mode_active);
ble_gap_adv_data_set(sizeof(adv_data), adv_data, 0, NULL);
ble_gap_adv_start(GAP_CONN_MODE_UNDIRECTED);
OS_TASK_RESUME(handle);
}

Thank you
Jagath