你好,
我使用的是DA14695开发工具包和使用FreeRTOS的WiRa SDK 10.440.8.6。
我正在实施一个解决方案,使设备睡眠时,没有活动,并有以下问题。
1调用“pm_sleep_mode_set(pm_mode_extended_sleep);”是否挂起FreeRTOS任务?
2如果我们需要减少睡眠期间的功耗,是否有FreeRTOS功能可以将对话框置于正确的睡眠模式、暂停任务、停止蓝牙活动等?
三。当我使用power profiler进行测试时,我发现蓝牙广告之间的平均电流消耗约为2.5mA。但是,我预计电流为微安。我如何做到这一点?
你能给我一些关于电源管理的指南吗?
谢谢和问候,
苏布拉曼尼亚
关键词:
设备:
你好,Subramanyan,
感谢您的在线提问,并对延误表示歉意。延长睡眠是默认的睡眠模式。设备可以在广告或连接间隔之间进入休眠状态。
如果设置了pm\u sleep\u mode\u(pm\u mode\u extended\u sleep),则在电源探查器中可以看到设备正在进行广告,并在广告间隔之间进入延长睡眠模式。您可以使用Power Profiler中的标记来测量延长的睡眠电流,因此您可以在两个广告间隔之间进行测量。
平均功耗与广告间隔密切相关。如果你使用更大的时间间隔,那么设备将睡眠更多的时间,因此平均功耗将降低。
为了进入永久睡眠模式,芯片应该首先停止广告。所以,你可以设置一个计时器停止广告,然后进入延长睡眠模式
为了停止广告,应该使用ble\u gap\u adv\u stop()。如果成功停止播发,应用程序将收到一个BLE\u EVT\u GAP\u ADV\u COMPLETED,状态设置为BLE\u ERROR\u cancelled。因此,您应该设置一个计时器,并在预定义的时间后停止广告。
请参考SDK的ble_adv示例,了解在for(;)循环中如何处理ble_EVT_GAP_CONNECTED和handle_EVT_GAP_CONNECTED。您应该对BLE\u EVT\u GAP\u ADV\u COMPLETED执行相同的操作。
我还建议查看以下教程:
http://lpccs-docs.dialog-semiconductor.com/da1469x\u power\u measurement/index.html
谢谢,下午好