低功耗应用指南

## 1.模块 WAKEUP 管脚参考设计 AM20E模块的 PIN18,即 WAKEUP 管脚用于将模块从 PSM 模式唤醒。如果不使用模块的 PSM 模式,可将 WAKEUP 管脚悬空处理。如果使用模块的 PSM 模式,则可参考下图的接口应用设计,当模块处于 PSM 模式,若模块有数据业务请求,需要外部 MCU 拉高 WAKEUP 管脚 1 秒或以上,再将WAKEUP 管脚拉低。 ![image.png](1) 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 命令手册。本节以一个实施例说明低功耗模式的应用。 ![image.png](2) 步骤一、模块正常开机后的 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 ````