【示例篇】4G模组LuatOS:超低功耗模式的快速启动

电子说

1.3w人已加入

描述

本次我要讲的是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。 

今天的分享就到这里了

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分