跳过主要内容

睡眠模式

DA1469x

7个月前

发布的Subramanyan140点 1回复
0的问题

你好,

我使用DA14695 Dev Kit和wiira SDK 10.440.8.6使用FreeRTOS。

我正在实施一个解决方案,让设备在没有活动时进入睡眠状态,并有以下问题。

1.调用“pm_sleep_mode_set(pm_mode_extended_sleep);”是否挂起FreeRTOS任务?

2.如果我们需要在睡眠期间降低功耗,是否有一个FreeRTOS功能,将对话框置于正确的睡眠模式,暂停任务,停止蓝牙活动等?

3.当我使用功率分析器进行测试时,我看到蓝牙广告之间的平均电流消耗约为2.5mA。但是,我希望电流是微安的。我如何做到这一点?

你能给我一些关于电源管理的指导或教程吗?

感谢和问候,

Subramanyan

7个月前

PM_Dialog

嗨Subramanyan,

感谢您的在线问题,并为延误道歉。扩展睡眠是默认的睡眠模式。该设备可以在广告或连接间隔期间进入休眠状态。

如果pm_sleep_mode_set(pm_mode_extended_sleep),您在功率分析器中看到的是设备正在发布,并在发布间隔之间进入扩展睡眠模式。你可以通过使用Power Profiler的标记来测量扩展的睡眠电流,这样你就可以在两个广告间隔之间进行测量。

平均功耗与广告时间间隔密切相关。如果您使用更大的间隔,那么设备将休眠更多的时间,从而降低平均功耗。

为了进入永久睡眠模式,芯片首先应该停止广告。所以,你可以设置一个计时器来停止广告,然后进入延长睡眠模式

应该使用ble_gap_adv_stop()来停止广告。如果广告成功停止,应用程序将收到一个状态设置为BLE_ERROR_CANCELED的BLE_EVT_GAP_ADV_COMPLETED。因此,您应该设置一个计时器,并在预定义的时间后停止广告。

请参考SDK的ble_adv示例,看看在for(;;)循环中BLE_EVT_GAP_CONNECTED和handle_evt_gap_connected是如何处理的。您应该对BLE_EVT_GAP_ADV_COMPLETED执行同样的操作。

Static void handle_evt_gap_adv_completed(ble_evt_gap_adv_completed_t *evt) {pm_sleep_mode_set(pm_mode_extended_sleep);} case BLE_EVT_GAP_ADV_COMPLETED: handle_evt_gap_adv_completed(((ble_evt_gap_pair_req_t *) hdr);打破;

我还建议检查以下教程:

http://lpccs-docs.dialog-semiconductor.com/da1469x_power_measurement/index.html

谢谢,PM_Dialog