[BLE(低功耗蓝牙)] STEVAL-IDB007V1挑战赛更低功耗实现

littleshrimp   2018-2-1 22:03 楼主
以往的代码都是间隔一段时间就测量一次数据然后通过BLE广播
虽然间隔可以设置为十几秒或者更长
但测量和广播仍然是电流的最大贡献者
VBLUE的电源连接了2颗传感器和BlueNRG-1芯片
其中LSM6DS3在掉电模式下的功耗为6uA左右,这使得整体最小电流不会小于9uA左右
除非断开LSM6DS3的电源然后在使用时通过外部开关通电
这样做需要对PCB做手术,实现起来比较麻烦,如果真这样做了空闲电流将控制在2uA以下,使用0.1F的超级电容应该可以工作几天时间
为了更近一步降低功能,不改动电路又能符合挑战寒的要求
唯一能做的就是让CPU尽可能多的处于掉电状态,同时尽可能少的发送广播
9uA的待机电流时,0.1F的超级电容从3V下降0.2V大概需要1个小时的时间
如果让BlueNRG-1每10分钟或者20分钟唤醒一次,然后测量电池电压,符合时测量传感器数据,再通过BLE广播一次数据,这无疑是一种非常省电的方法
但是在实际操作时遇到一个问题
用于超时唤醒的HAL_VTimerStart_ms函数在注释里看到msRelTimeout的要求是小于等于5242879
但在实际使用时发现最大的唤醒时间不能超过10秒,即使把msRelTimeout设置成大于10000小于等于5242879的数值,芯片也会在10秒时准时唤醒
image001.jpg
这个问题无疑增加了芯片运行时的时间,增加了整体功耗
如果这个不能改变,降低功耗的另一个方法是10秒唤醒时对一个变量计数
当变量计数达到60时(10秒*60=10分钟)再测量一次电池电压
从下图可以看出,测量一次电池电压需要6ms的大电流时间,而唤醒增加计数后马上休眠则只有1ms的大电流时间
image002.jpg
另一个问题是超级电容电压会充电至3.3V左右,实际需要在3V时计数,为了让超级电容电压大于3V时快速掉电,可以把唤醒的时间缩短到比如50ms,然后在电压小于等于3.05V时再将唤醒间隔设置成10秒,下图是电池电压大于3.05V时的波形
image003.jpg
为什么电压是3.05V而不是3.0V?这是因为挑战赛要求在3V±0.1V测量并发送数据,如果判断电压小于等于3V实际发送的电压多数为2.9V,因为测量的电压多数为小于3V,等于3V的情况会非常少
解决完测量和广播的问题后,下一个问题是如何计数
通过HAL_VTimerDiff_ms_sysT32函数可以得到最大为5242879ms的时间
对于一个能够工作几小时的系统肯定不能直接使用HAL_VTimerDiff_ms_sysT32计算时间
一个方法是通过超时中断对一个变量计数,比如每10秒唤醒然后对此变量加1
除非超时定时器一直开启,否则如果按需开启再关闭这样通过超时中断计算的时间难免会有些误差
另一种计数方法是保留上一次通过HAL_VTimerGetCurrentTime_sysT32函数获得的计数器快照,然后和当前计数器做比较计数出时间差,最后累加到用于计数的变量上,这样能保证计时的准确性
image004.png
用于按需读取传感器并广播的方法是增加一个变量measVoltage用来指示当前需要判断的电压范围,默认为MEAS_3V0,即在voltage <= 3.05f时执行一次传感器测量和广播,然后将measVoltage设置成MEAS_2V8(voltage <= 2.85f时测量和广播),这样在小于3.05V和大于2.85V时系统都不会读取传感器和广播数据,这能保证以最小的功耗运行
下面的用来判断电压逻辑的代码
使用这种方案为了方便测量我把休眠唤醒时间设置为10秒(最大只能是10秒)然后每100秒测量一次电池电压(理论可以设置成600秒或更长这样做是为了缩短测试时间),对比万用表发现在电压为3.09V时广播了一次数据,理论上应该是3.05V,这可能和ADC的测量误差或者cruelfox发现的超级电容内阻有关,还好它符合比赛要求,那时的时间是18:38。
接下来在19:05时的电压为2.96V,还没有收到第二次数据;
然后20:02时的电压为2.77V,已经收到第二条数据;
20:26时的电压为2.69V,刚好收到第三次数据,这时的计数是6461346ms;
image005.jpg
从3.09V掉电到2.64V,下降0.4V用一107.6分钟,后面需要的时间太长就没再继续测试
测试时万用表一直接在超级电容的两端,万用表的内容为10M欧,它还会帮助消耗0.26~0.3uA左右的电流。
相信在把测量电池电压的间隔从100秒设置成600秒时待机时间还会被延长,已经长到不方便去计算它的具体时间就不去做测试了。
BLE_Beacon.bin (90.01 KB)
(下载次数: 0, 2018-2-1 22:33 上传)
本帖最后由 littleshrimp 于 2018-2-1 22:33 编辑
虾扯蛋,蛋扯虾,虾扯蛋扯虾

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复