Topic

FAQ
Login Register
8258不进入低功耗
Mar 24, 2023 17:50

/

A

/A

单火需要的低功耗要求:每500微秒唤醒一次,每次唤醒工作60微秒,工作期间可以正常收发蓝牙包。


2 replies
TL_bloom5 Mar 27, 2023 10:11
0
/A

你好,你的工程是基于那个便于选项修改的呢?8258_mesh, 还是 8258_mesh_LPN?

另外60uS的工作时间是笔误吗,这个收包可能都不太够。

TL_bloom5 Mar 28, 2023 17:00
0
/A

@Titan

下面是一般单火低功耗的实现,请参考,因为需要低功耗,需要使用LPN:

单火开关借用BLE SDK的休眠机制(按照设置的广播间隔周期性起来工作)。
以spirit lpn工程休眠机制(每360ms起来收包20ms)为例:
1.打开宏PM_DEEPSLEEP_RETENTION_ENABLE使能底功能模块
2.设置360ms周期性唤醒。 即:把广播包间隔设置为#define ADV_INTERVAL_MIN (ADV_INTERVAL_360MS),设备会每隔360ms起来工作。
3.实现20ms收包间隔。在每次周期性唤醒的时候在spirit_lpn_wakeup_init()中调用bls_pm_setSuspendMask (SUSPEND_DISABLE)把PM关闭,此时设备不会进入休眠。
在main loop中proc_suspend_low_power检查到唤醒工作时间超过20ms的时候通过接口bls_pm_setSuspendMask (SUSPEND_ADV | DEEPSLEEP_RETENTION_ADV | SUSPEND_CONN | DEEPSLEEP_RETENTION_CONN);使能PM,开启后设备再次跑到main_loop中blt_sdk_main_loop()后会自动进入休眠,并在下一次广播周期起来。实现了每360ms工作20ms的机制。
4.其他改动可搜索宏spirit lpn工程宏SPIRIT_PRIVATE_LPN_EN查看