电子说
本次我要讲的是4G模组LuatOS开发的超低功耗模式的快速启动,我将教大家使用合宙Air201的超低功耗模式下,定时三分钟上传以及G-senser拓展示例;更多低功耗模式的玩法,等你来。
1. 搭建环境
新同学建议先看前期的基础知识相关教程,更有助于理解和操作。
可以在LuaTools项目管理中新建一个项目,重新选择底层CORE和脚本;或者在原有项目的基础上,不更换CORE,将原来的脚本删除,添加为demo/psm的脚本。
1.1 硬件准备:
Air201套件
功耗分析仪Air9000P
SIM卡
带有数据通信功能的数据线
Win10及以上PC
将Air201通过usb-boot小板连接电脑,注意:boot小板和Air201连接时,要确保RESET按键、BOOT按键、电源开关机键三个按键在同一面,否则无法进入boot下载模式。
如下图所示:
如何判断有没有进入下载模式:
可以通过PC端的设备管理器中虚拟出来的USB端口数量来判断。
正常开机模式:
下载模式:
在需要直流稳压电源的场景(例如ADC测量外部输入的模拟电压),使用合宙功耗分析仪Air9000P:
1.2 软件准备:
LuaTools调试工具:
https://docs.openluat.com/Luatools
功耗分析仪PC端软件:
https://apps.microsoft.com/detail/9nrtkwwvd2b3?hl=zh-cn&gl=CN
TCP/UDP测试网站:
https://netlab.luatos.com
最新固件:
https://gitee.com/openLuat/LuatOS-Air201/tree/master/core
最新脚本:
https://gitee.com/openLuat/LuatOS-Air201/tree/master/demo/psm
2. 示例代码
2.1 Air201超低功耗定时上报
2.1.1 代码介绍
1)关闭一些可能影响功耗,误唤醒的引脚。
2)加入VBUS插入检测函数,防止读取不了日志。
3)连接TCP服务器、设置深度定时器后进入休眠模式。
2.1.2 运行结果展示
开机连接TCP服务器,然后进入超低功耗模式,设备内部设置了一个定时器,该定时器每隔三分钟会触发一次唤醒操作:
当定时器触发时,设备会从超低功耗模式中唤醒,并重新建立与TCP服务器的连接(如果连接已经断开);
连接成功后,设备会发送一次预设的数据到TCP服务器;
数据发送完成后,设备会再次进入超低功耗模式,等待下一次定时唤醒。
因为设备的充电IC在会存在一个20μA的漏电流,由于这个硬件特性,那么Air201在超低功耗模式下实际的功耗(包括充电IC的漏电流)就是25.07μA。
定时器每隔三分钟会触发一次唤醒操作,设备会从超低功耗模式中唤醒,并重新建立与TCP服务器的连接,并发送预设的数据。
Air201定时唤醒后,连接TCP平台发送数据时的功耗是17.7898mA:
7个休眠发送周期为21分钟,平均功耗为251.1095μA:
2.2 G-esensor示例
添加gesensor功能,超低功耗模式下如果gsenseor中断产生,需要上报。
2.2.1 代码介绍
1)gesensor初始化
2)gesensor触发中断回调
2.2.2 运行结果展示
开机初始化gesensor,连接TCP服务器,进入超低功耗模式;当gesensor触发时唤醒Air201,并上传三轴参数到TCP服务器。
发送数据时的电流:
以上就是Air201的超低功耗模式下,定时三分钟上传和gsenser拓展示例。
定时三分钟上传示例:
超低功耗模式下
电流为5.07μA左右(注意需要减去ic的漏电流),上传数据时的电流为17mA;
拓展示例:
超低功耗模式下电流为236μA,触发gesensor唤醒Air201,并上报三轴参数,上传数据时电流为32.5mA。
今天的分享就到这里了
全部0条评论
快来发表一下你的评论吧 !