MN316 OpenCPU丨休眠使用介绍

MN316 OpenCPU模式下的电源及休眠模式主要功能函数包含模组“上电原因”,“模组电源模式”,“模组深睡眠模式”,“模组重启”。本文从使用流程、接口介绍、Demo使用方法和常见问题四个方面介绍如何实现MN316模组的休眠功能。

一、MN316上电到休眠流程

以下流程图为使用MN316 OpenCPU SDK 上电到休眠功能时的常见流程介绍。

二、接口介绍

PM功能主要包含以下接口,可在cm_pm.h中查看。

2.1 获取模组上电原因

图1获取模组上电原因函数

图2模组上电原因枚举

图2定义了几个模组上电原因的枚举类型,调用接口cm_pm_get_power_on_reason()return相应的模组上电原因。

2.2 设置模组电源standby模式

图3设置模组电源standby模式函数

pm_mode: 0--关闭standby模式

pm_mode: 1--开启standby模式

关于standby前睡眠模式的详细介绍可参见模组硬件设计手册,一般不推荐使用standby模式。

2.3 获取模组电源standby模式

图4获取模组电源standby模式函数

pm_mode: 0--关闭standby模式

pm_mode: 1--开启standby模式

2.4 上锁深睡眠模式

图5上锁深睡眠模式函数

执行此函数关闭模组深睡眠,模组将无法进入深睡眠状态。

2.5 解锁深睡眠模式

图6解锁深睡眠模式函数

执行此函数打开模组深睡眠,当模组满足进入深度休眠条件时,即可进入深睡眠状态。并不是说调用此函数,模组立即就能进入深睡眠状态。

2.6 模组重启

图7模组重启函数

执行此函数可让模组立即重启,type为重启类型代码,为预留接口。

三、Demo使用方法

在SDK demo中含有重启模组、打开及关闭深度睡眠,打开关闭standby浅睡眠的测试函数,只需按照cm_demo_main.c中的测试命令测试即可。


3.1 编译demo测试固件

图8 DEMO测试指令

若要使用demo中的测试功能,需使用编译命令build.bat dbrs_h0 demo其中dbrs_h0需要根据实际使用模组型号来选择对应参数编译。

3.2 测试命令:CM:REBOOT

图9串口输入指令测试模组重启

3.3 测试命令:CM:REBOOT

图10串口输入指令测试模组浅睡眠

3.4 测试命令:CM:SLEEP  

在模组AT串口输入CM:SLEEP:1 ,一段时间模组进入深睡眠状态,AT串口发指令无任何反应。

图11串口输入指令测试模组深睡眠

图12短按开发板睡眠按键后唤醒注释

四、常见问题

1、为什么模组不是在执行cm_pm_work_unlock()后立即进入深度休眠?

因为此函数只是允许模组进入深度休眠,模组是否能进入深度休眠还需要满足以下条件:

(1)在插入SIM卡,开启深睡眠时,若eDRX协议可睡眠时长大于100s,PSM协议可睡眠时长大于4s,在进入eDRX/PSM模式后,模组会进入深睡眠;

(2)模组在搜索完全频段,依然驻网失败后,会进入深睡眠,首次睡眠时长为60s,后续逐步倍增,最大24h;

(3)模组在上电后输入AT+CFUN=0或AT+CGATT=0命令或配置的上电不接入网络,均在延迟深睡时间到了后自动进入深睡眠。

2、模组从深睡眠唤醒的方式有哪几种?

(1) T3412定时器超时唤醒。

(2) RST_WAKEUPIN高电平唤醒,需保持高电平一定时间。模组被唤醒后,发送AT命令才有响应。

注意: 释放RST_WAKEUPINP唤醒信号后,需等待时间t≥40ms,才能进行AT命令操作。

  1. MN316模组的睡眠锁是默认上锁的吗?

MN316上电默认是释放了睡眠锁(省电锁)的,如需进行数据业务需要先执行上锁,对应的接口是cm_pm work lock()

注意:解锁次数=锁次数,调用多少次上锁就需要多少次解锁才能进入深睡眠

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值