• 欢迎大家分享资料!前往留言板评论即可!

luat模组开启飞行模式后电流变为30mA的问题解决

合宙 模组资料网 1年前 (2021-05-15) 225次浏览 已收录 0个评论 扫描二维码

备注:以下测试,基于我的AIR202_S5最小系统板

有个luat客户反映说,怎么luat模组开启飞行模式后,消耗电流不减小反而增大了,并且电流恒定在30mA左右,他研究了好久也没找到原因,让我帮他想想办法。

今上午我特意拿出一上午时间,来针对这个问题展开测试,并找到答案。

开启飞行模式后电流变为30mA的原因,就是因为你没有成功开启飞行模式。

你要开启飞行模式,那么你得先知道什么是飞行模式。飞行模式简而言之,就是切断模组与基站的通讯链路,从而起到减小功耗的作用。

那么在这里就有一个问题,你要进入飞行模式切断通讯链路的前提,应该是你的模组当前已经向基站成功注册网络连接。在你的模组还没注册网络的情况下,你就着急进入飞行模式,那么问题就来了,典型现象就是你检测的模组消耗电流变为30mA,至于为什么是30mA我也不清楚。

客户发给我他的代码,意图是让模组进入飞行模式,如下所示:

PROJECT = “power test”
VERSION = “0.0.0.1”

require “sys”
require“gps”
require “log”
require “net”

gps.closeAll()
log.info(‘main’,‘main.lua’)

net.switchFly(true)
sys.init(0, 0)
sys.run()

从上面代码可以看出,用户在模组启动后,立马就开启了飞行模式,这样的结果只有一个,那就是好点电流变为30mA.

上面的姿势完全错误,下面请看正确姿势,如下所示:

module(,package.seeall)

require“pm”
require “common”

sys.taskInit(function()

—————等待模组网络附着成功,如果网络在未附着成功的情况下,去开启飞行模式,那么是不会成功的
local netStatus = true
local netRes
log.info(‘powerTest’,common.utf8ToGb2312(‘等待模组附着网络成功’))
while netStatus do
if net.getState()==‘REGISTERED’ then
netStatus = false
end
sys.wait(1000)
end
log.info(‘powerTest’,common.utf8ToGb2312(‘模组网络附着成功’))
———————————————————————————-
while true do
log.info(‘powerTest’,common.utf8ToGb2312(’10秒后将启动飞行模式,请注意对比电流变化’))
sys.wait(10000)–延时10秒

log.info(‘powerTest’,common.utf8ToGb2312(‘启动飞行模式,此时电流应该显著减小’))
net.switchFly(true) –启动飞行模式

log.info(‘powerTest’,common.utf8ToGb2312(’20秒后将退出飞行模式,请注意对比电流变化’))
sys.wait(20000)–延时20秒

log.info(‘powerTest’,common.utf8ToGb2312(‘退出飞行模式,此时电流应该显著增大’))
net.switchFly(false)–退出飞行模式

— pm.wake(“A”) –执行本句后,A唤醒了模块
–pm.wake(“A”) –执行本句后,A重复唤醒模块,实际上没什么变化
— pm.sleep(“A”) –执行本句后,A休眠了模块,lua部分已经没有功能唤醒模块了,模块是否休眠由core决定
while true do
sys.wait(2000)
end
end
end)

在上面的测试代码中,我先等待模组成功注册网络,然后我再进入飞行模式。经实测,在进入飞行模式前,电流是变化的,从大约20mA至最大70mA之间跳变。

然而在开启飞行模式后,电流稳定在3mA左右。此处飞行模式电流为3mA左右 ,对于低功耗产品来说电流仍较大,但是可以采取其他一些措施进一步减小功耗。

总结:

有不止一个客户反映飞行模式30mA的问题,请大家参考我的测试结果。

注意:我测试模组电流,是将模组VBAT供电引脚与电源的走线切断后,串联电流表。


喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址