低功耗应用指南
## 1.模块 WAKEUP 管脚参考设计
AM20E模块的 PIN18,即 WAKEUP 管脚用于将模块从 PSM 模式唤醒。如果不使用模块的 PSM 模式,可将 WAKEUP 管脚悬空处理。如果使用模块的 PSM 模式,则可参考下图的接口应用设计,当模块处于 PSM 模式,若模块有数据业务请求,需要外部 MCU 拉高 WAKEUP 管脚 1 秒或以上,再将WAKEUP 管脚拉低。

WAKEUP 管脚默认为低电平,接近 0V。高电平有效,高电平将模块从 PSM 模式唤醒。上图中,VCC_3P3 典型值为 3.3V,由外部主板电源域供电。WAKEUP_MCU 接 MCU 侧的 GPIO。WAKEUP_MCU 只在模块处于 PSM 模式需要被唤醒时,输出宽度为 1 秒或以上的高电平脉冲;其它时候需要将 WAKEUP_MCU 置低电平。
## 2. 低功耗流程
低功耗模式的应用主要在于 3 条 AT 指令的使用。AT 指令分别是 AT+NVSETPM、AT+CEDRXS、以及 AT+CPSMS。指令的详细说明请查阅 AT 命令手册。本节以一个实施例说明低功耗模式的应用。

步骤一、模块正常开机后的 AT 指令配置。包括设置 AT+NVSETPM=2, AT+CEDRXS=1,AT+CPSMS=1。
若仅使用 eDRX 模式,不使用PSM 模式,则设置 AT+CPSMS=0,关闭 PSM 模式。 若仅使用 PSM 模式,不使用 eDRX 模式,则设置AT+CEDRXS=0,关闭 eDRX 模式。AM20E 模块支持 PSM 状态自动上报功能,但需要通过 AT+IPR 指令设置固定波特率。AM20E 模块支持的波特率可通过 AT+IPR=?查询。若需要 PSM 状态自动上报,则在此步骤中,首先通过 AT+IPR 指令设置固定波特率;然后通过 AT+NEONBIOTCFG=0,0,1,0 指令设置PSM 状态自动上报。
步骤二、数据业务。模块正常开机后,完成 AT 指令配置,并成功注册网络后;可发起数据业务, 比如对接中国联通、中国电信物联网开放平台(OceanConnect 平台)、中国移动 OneNET 平台;建立TCP/UDP、HTTP/HTTPS、FTP、MQTT 链接进行数据业务。
步骤三、等待进入低功耗模式。若数据业务收发完成、期望模块进入低功耗模式节约用电,则外部MCU 停止在 UART 口发送 AT 指令,模块只需等待进入低功耗模式。
步骤四、模块唤醒。外部 MCU 拉高 WAKEUP 管脚 1 秒或以上,将模块从PSM 模式唤醒。
对于对接 OceanConnect 平台和 UDP 数据业务,当前 AM20E模块支持 PSM 模式唤醒后直接发送数据,即直接执行 AT+NMGS 和AT+UDPSEND 指令发送数据。其它数据业务下,模块从 PSM 模式唤醒后,需要首先建立链接,再进行数据收发。
## 3.参考示例
本节以对接 UDP 数据业务,和 TCP 数据业务为例,说明低功耗模式的使用。其它数据业务,例如对接中国移动 OneNET 平台、中国电信 OceanConnect 平台,HTTP/HTTPS、FTP、MQTT 数据业务;请参考相应的应用指南,结合相关的 AT 指令灵活使用。
````
AT//指令通信正常
OK
AT+CEREG?//查询注网情况
+CEREG:0,1
OK
AT+SETNVPM=2 //开启 低功耗 模式
OK
AT+CEDRXS=1 //开启 eDRX模式
OK
AT+CPSMS=1 //开启 PSM 模式
OK
/******根据需要设置 PSM 状态自动上报功能******/
AT+IPR=? //查询模块支持的波特率
+IPR: 0,2400,4800,9600,14400,19200,28800,33600,38400,57600
OK
AT+IPR=9600 //设置特率 9600
OK
AT+NEONBIOTCFG=0,0,1,0 //设置 PSM 状态自上报
OK
````
步骤二、数据业务
````
AT+XIIC=1 //手动获取 IP 地址
OK
AT+XIIC?
+XIIC: 1,10.34.94.95
OK
AT+UDPSETUP=1,101.200.35.208,8081
OK
UDPSETUP: 1,OK
+UDPSEND: 1,2 //数据发送成功
````
步骤三、等待进入低功耗模式
````
/******若设置了 PSM 状态自动上报功能,则有 PSM 状态自动上报*******/
+PSMEVENT: ENTER PSM //提示进入PSM 模式
◇ AT //进入 PSM 模式,不响应网络业务请求,不响应 AT 指令
````
步骤四、模块唤醒
外部 MCU 拉高 WAKEUP 管脚,唤醒模块后,模块输出+PBREADY 信息
````
+PBREADY
*****若设置了 PSM 状态自动上报功能,则有 PSM 状态自动上报***********/
+PSMEVENT: PSM WAKEUP
AT+UDPSEND=1,2
>5A
OK
UDPSEND: 1,2 //数据发成功,不需重新建立连接
````
### 示例 2:TCP 数据业务
步骤一、模块正常开机后的 AT 指令配
````
AT//指令通信正常
OK
AT+CEREG? //查询网络注册
+CEREG: 0,1
OK
AT+NVSETPM=2 //打开低功耗模式
OK
AT+CEDRXS=1 //开启 eDRX 模式
OK
AT+CPSMS=1 //开启 PSM 模式
OK
/******根据需要设置 PSM 状态自动上报功能******/
AT+IPR=? //查询模块支持的波特率
+IPR: 0,2400,4800,9600,14400,19200,28800,33600,38400,57600
OK
AT+IPR=9600 //设置特率 9600
OK
AT+NEONBIOTCFG=0,0,1,0 //设置 PSM 状态自上报
OK
````
步骤三、数据业务
````
AT+XIIC=1 //手动获取 IP 地址
OK
AT+XIIC?
+XIIC: 1,10.34.94.95
OK
AT+TCPSETUP= 0,183.230.40.40,1811 //建立 TCP 链接,示例中的 IP 地址和端口请注意替换
OK
+TCPSETUP: 0,OK
AT+TCPSEND=0,19 //TCP 链接下发送数据
> *97993#dev1#send5A*
+TCPSEND: 0,19 //数据发送
+TCPRECV: 0,2,5A //收到回应的数据
OK
````
步骤三、等待进入低功耗模式
````
/******若设置了 PSM 状态自动上报功能,则有 PSM 状态自动上报*******/
+PSMEVENT: ENTER PSM //提示进入PSM 模式
◇ AT //进入 PSM 模式,不响应网络业务请求,不响应 AT 指令
AT+TCPSEND=0,19 //PSM 唤醒后,TCP 链接已断开,直接发送数据将失败
+TCPSEND: SOCKET ID OPEN FAILED
AT+TCPSETUP=0,183.230.40.40,1811 //PSM 唤醒后,需要重新建立 TCP 链接
OK
+TCPSETUP: 0,OK
AT+TCPSEND=0,19 //重新建立 TCP 链接后,再发送数据
>*97993#dev1#send5A*
+TCPSEND: 0,19 //数据发送
+TCPRECV: 0,2,5A //收到回应的数据
OK
````