3.1.8 省电模式

作者:金艺

Air724UG支持多种省电模式,通过进入不同的省电模式达到降低功耗的目的。 1. 全功能模式(默认):一般的工作模式,CPU,时钟全速运行。 1. 睡眠模式:CPU休眠,射频部分工作,周期进行寻呼,仅维持网络连接,能随时接收网络端的电话,短信等。功耗较低(具体功耗数据参考6.5章节),主要的省电模式。可以通过GPIO中断,内部计时器中断,网络消息,来电,短信等唤醒。 1. 飞行模式:CPU休眠,射频与SIM卡关闭,无法注册网络,无法接收网络端的任何信息。功耗最低(具体功耗数据参考6.5章节)。只能通过发AT指令或者软件主动调用接口退出。 注意:模块是否有进入睡眠模式,从外部电气信号或调试日志中无法体现,只能通过检测模块的消耗电流来判断。进入休眠后模块的电流会在1到2mA的底电流的基础上跳动。

模式切换汇总:

当前模式

下一模式

关机

正常模式

睡眠模式

关机

使用PWRKEY开机

正常模式

使用PW RKEY管脚,或VBAT 电压低于关机电压

软件调用睡眠 接口,AT版本不做 动作30s自动休眠

睡眠模式

使用PWRKEY或VBAT 电压低于关机电压

GPIO管脚 中断、定时器、接 收短信或网络数据


AT指令方式

对于AT版本可以通过给模块发AT指令来进入或者退出各种工作模式。

最少功能模式/飞行模式: 最少功能模式可以将模块功能减少到最小程度,此模式可以通过发送“AT+CFUN=”命令来设置。参数可以选择0,1,4。 • 0:最少功能(关闭RF和SIM卡); • 1:全功能(默认); • 4:关闭RF发送和接收功能; 如果使用“AT+CFUN=0”将模块设置为最少功能模式,射频部分和SIM卡部分的功能将会关闭。而串口依然有效,但是与射频部分以及SIM卡部分相关的AT命令则不可用。 如果使用“AT+CFUN=4”设置模块,RF部分功能将会关闭,而串口依然有效。所有与RF部分相关的AT命令不可用。 模块通过“AT+CFUN=0”或者“AT+CFUN=4”设置以后,可以通过“AT+CFUN=1”命令设置返回到全功能状态。

睡眠模式:

串口应用下支持两种睡眠模式: - 睡眠模式1:通过AP_WAKEUP_MODULE管脚电平控制模块是否进入睡眠。 - 睡眠模式2:模块在串口空闲一段时间后自动进入睡眠。 两种模式功耗相同,串口不工作,无法进行收发数据。 注意: 通过串口使模块进入睡眠的先决条件是:不接 USB

睡眠模式1: - 开启条件: 发送AT指令AT+CSCLK=1 - 模块进入睡眠: AP_WAKEUP_MODULE为高时,允许系统进入休眠,当系统进入空闲状态时,就会自动进入睡眠模式。 - 模块退出睡眠: 1. 拉低AP_WAKEUP_MODULE脚50ms以上,模块会退出睡眠模式可以接受AT指令。 2. 外部GPIO中断,计时器中断,短信,来电,网络端下发数据。 - 模块在睡眠模式1时的软件功能: 不响应AT指令,但是收到数据/短信/来电串口会唤醒并有URC上报

睡眠模式2: - 开启条件: 发送AT指令AT+CSLCK=2 - 模块进入睡眠: 系统空闲时,经过一定时间后(默认5s),模块自动进入睡眠模式2。 通过AT+WAKETIM配置休眠时间。例如AT+WAKETIM=8,系统空闲后8S进入睡眠模式,取值(0~100)。 - 模块退出睡眠: 串口连续发送AT直到模块回应时即退出睡眠模式2 - 模块在睡眠模式2时的软件功能: 不响应AT指令,但是收到数据/短信/来电会有URC上报

USB休眠模式 在连接USB模式下进行休眠 - 开启条件: HOST USB必须支持USB suspend/resume - 模块进入睡眠: HOST发起USB suspend - 模块退出睡眠: HOST发起USB resume


LUAT二次开发

luat二次开发只支持如下3种工作模式: 1. 全功能模式 1. 休眠模式 1. 最少功能模式(RF和SIM都关闭)

luat版本默认自动休眠控制,系统空闲会自动进入休眠。但是要在进行串口,SPI,ADC,I2C操作时,需要调用pm.wake()主动唤醒。操作结束后,需要调用pm.sleep()重新进入自动休眠控制。

相关API:

pm.wake(tag): 某个Lua应用唤醒系统。 - 参数 传入值类型: param。 释义:tag,一般string类型,某个Lua应用的唤醒标记,用户自定义。 - 返回 无 - 示例 pm.wake(“uart”)

pm.sleep(tag): 某个Lua应用休眠系统。 - 参数 传入值类型: param。 释义:tag,一般string类型,某个Lua应用的唤醒标记,用户自定义,跟wake中的标记保持一致。 - 返回 无 - 示例 pm.sleep(“uart”)

net.switchFly(mode): 设置飞行模式。 - 参数 传入值类型: bool。 释义:true:飞行模式开,false:飞行模式关. - 返回 无 - 示例 net.switchFly(true)