目录
问题描述:
自制模块电流测试:
成熟产品电流测试:
优化程序:
总结:
关注我,躺不平就一起卷吧
问题描述:
之前有记录过,CH592与app连接时电流过大问题,已解决
CH592蓝牙芯片从机端调试记录:如何降低连接功耗_蓝牙从机的低功耗策略-CSDN博客
发现新问题:基于CH592做的从机模块连接手机app后,与成熟产品连接app后使用电池情况比对,自制模块只持续了17天,比成熟产品少了近2天。
自制模块电流测试:
未连接时的功耗: 0.02~0.23mA为一个周期的跳变,中间偶尔也会出现0.08的跳变
测试连接app后的功耗:0.02~0.18~0.32mA为一个周期的跳变,变化较快
成熟产品电流测试:
未连接时的功耗: 0.02~0.3mA为一个周期的跳变
连接app后的功耗:有两种周期,一种0.03~0.3mA快跳变,一种<0.1mA的慢跳变
通过测试数据看,未连接时电流相比差不多,连接app后自制模块电流变化范围大,周期短。
优化程序:
程序中一共注册了两个任务处理函数(用户),一个是关于蓝牙的任务事件处理函数,另一个是用户自定义任务事件处理函数。可通过“tmos_start_task”全局搜索查到详细任务事件。
蓝牙相关的任务事件有:(事件的间隔时间在peripheral.c中定义)
- 在条件符合的情况下启动发送历史数据事件,间隔15ms,发送完历史数据后会停止该事件
- 每秒周期性事件,执行用户的应用相关程序(周期性数据上报)
- 每4秒参数更新事件(符合条件后会停止该事件)
- 每2s读取RSSI事件
用户自定义相关的任务事件有:(事件间隔在HAL.h中定义)
- 每500ms周期性事件
- 每秒周期性事件
- 每10s周期行事件
- 每120s的BLE自校准任务
- 延迟50ms的执行的单次事件(在500ms周期性事件中启动)
最终常规运行的事件有蓝牙任务中的每2s读取RSSI事件、每秒计时事件(用于不同间隔发送不同数据)、用户自定义任务中的每50ms、500ms、1s、10s、120s的周期性任务;
南京沁恒提供的TMOS使用说明文档中给出的注意事项:
之前已经在程序中添加了协商连接间隔部分程序,将连接间隔调整成了1s~2s之间,尝试对上面个提到的任务事件进行合并和优化。
- 去掉500ms周期性事件,优化其相关程序到用户自定义每秒周期性事件中;
- 去掉10s周期行事件,优化其相关程序到用户自定义每秒周期性事件中;
修改程序后,测试未影响蓝牙连接,测试未连接app和连接app电流均有不同程度的减小。
未连接app时电流:
连接app后电流:
总结:
优化程序,尽量减少周期性任务事件。
关注我,躺不平就一起卷吧
顺便厚颜的打个广告,♥关注我♥,发布的文章专辑涉及到嵌入式开发、AI知识、日常调试bug记录、AI工具使用记录等。