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)