怎么降低蓝牙连接电流
今天测试电流发现一个问题,对码完成后,后几秒钟时间,电流是比较小的。顿时感觉有问题,开始怀疑是睡眠处理问题,蓝牙部分没有处理好,本着司马当活马医的精神,报告了技术支持。不过,也如大家的认知,这个不靠谱,只好继续测试。然后注意到了连接参数更新的问题,把原来参数更新的延迟参数FIRST_CONN_PARAMS_UPDATE_DELAY = 0, 修改 FIRST_CONN_PARAMS_UPDATE_DELAY = 2000,发现问题解决一半。 配对连接时电流下降了,断线连接后,电流又恢复。
只能继续查找,然后注意到,连接后,蓝牙会自动更新连接参数为 {12,4,100},断线连接后会覆盖设定的连接参数。再次修改FIRST_CONN_PARAMS_UPDATE_DELAY = 4000, 让程序在 自动更新参数后,再次更新一次, 问题解决。
实际测试一下参数, 未设置延时前,连接电流大概48uA,设置延迟后,电流10uA。
#define MIN_CONN_INTERVAL 100
#define MAX_CONN_INTERVAL 200
#define SLAVE_LATENCY 2
#define CONN_SUP_TIMEOUT 4000
不过,事情还未彻底解决,电流有时候从10uA飘到26uA,主要是有时候,连接的电流尖峰会更高。这个估计真是 蓝牙的睡眠处理没有解决好了。 看看哪位大神可以解决并共享出来。 刚才想起一个问题,技术支持提供了一组测试参数“100ms连接间隔是70微安左右,1s连接间隔是25微安左右”, 查看了下其它例程,发现只有"hid_mouse" 这个例程有问题。 标准蓝牙技术是一种“面向连接”的无线技术,具有固定的连接时间间隔 BLE 在 controller 中放置了大量精力,其允许HOST休眠更长时间(Duty-Cycle),并且仅在HOST需要执行某些操作时才被控制器唤醒,并且在Duty-Cycle时,发送数据间隔也被增大 蓝牙应用程序能够在短短几毫秒内建立连接并传输经过身份验证的数据,以便在快速断开连接之前进行短暂的通信 芯片的低功耗模式用于有限减少芯片的功耗,芯片提供多种低功耗的控制来降低芯片的功耗。 高效的多路径优势可增加链路预算和有效运行范围,并优化能源消耗 :提供时钟关断功能,可以关闭没有必要的时钟,减少芯片的功耗
页:
[1]