【Air302】 关于 pm.HIB 的休眠定时唤醒

合宙 Air302 模组使用中国移动 NB 卡 cmnbiot2 模板时, T3324 (activeTime) 不为 0 引起的休眠唤醒问题 (对于模组想尽快进入低功耗休眠状态时的应用场景)
关于 PSM 的说明(尤其 T3324)

问题复现 : 当使用以下代码会出现意料之外休眠和唤醒,导致无法实现精准的休眠唤醒
PROJECT = "lowpower" VERSION = "1.0.0"_G.sys = require("sys")sys.taskInit(function()log.info("===========================", "pm", "lastReson", pm.lastReson())while not nbiot.isReady() do sys.wait(100) endlog.info("--------------------------------------- begin")pm.dtimerStart(0, 5 * 60 * 1000)pm.request(pm.HIB) if pm.check() then log.info("pm", "it is ok to hib") endlog.info("--------------------------------------- end")end)sys.run()

意外的唤醒:
luat.pm Go into Sleep2 luat.pm poweron: Wakup Sleep2 by RTC 255

【Air302】 关于 pm.HIB 的休眠定时唤醒
文章图片

初步解决 : 在代码中设置 TAU 为 0, nbiot.setPSM(1, 86400, 0) (模组设置基站核心网 T3324 时间)
PROJECT = "lowpower" VERSION = "1.0.0"_G.sys = require("sys")sys.taskInit(function()nbiot.setPSM(1, 86400, 0)-- 注意这里!!log.info("===========================", "pm", "lastReson", pm.lastReson())while not nbiot.isReady() do sys.wait(100) endlog.info("--------------------------------------- begin")pm.dtimerStart(0, 5 * 60 * 1000)pm.request(pm.HIB) if pm.check() then log.info("pm", "it is ok to hib") else log.info("pm", "force to hib") pm.force(pm.HIB) endlog.info("--------------------------------------- end")end)sys.run()

模组第一次上电或复位运行驻网,【可能会进入一次 `luat.pm Go into Sleep2` 、`luat.pm poweron: Wakup Sleep2 by RTC 255`】 之后再次进入`luat.pm Go into Hib`,此后模组才将按照唤醒时间准时唤醒(模组初次驻网设置 T3324 未生效)

最终解决 : SIM 卡管理平台设置 T3324 为 0 [Net 状态指示灯熄灭不再闪速]
【Air302】 关于 pm.HIB 的休眠定时唤醒
文章图片

使用第一次代码打印日志
【【Air302】 关于 pm.HIB 的休眠定时唤醒】【Air302】 关于 pm.HIB 的休眠定时唤醒
文章图片

    推荐阅读