查看: 1200|回复: 0

[应用笔记] Lierda NT35E&NT26E PMU低功耗应用指导

[复制链接]

77

主题

118

帖子

1403

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1403
发表于 2023-6-7 10:56:40 | 显示全部楼层 |阅读模式
  1 引言

  1.1 文档目的

  本文档详细描述了NT35E和NT26E模组(以下称为“模组”)的低功耗模式,旨在帮助用户通过使用相关AT指令完成低功耗应用的开发。

  1.2 内容简介

  本文简要介绍了模组PMU的硬件和软件架构,并给出了如何使用PMU相关的AT指令进入不同低功耗模式的操作示例。

  1.2.1 相关名词


  1.2.1.1睡眠深度


  ●ACTIVE状态:不开启低功耗模式,即使无任何操作,MCU依然处于循环等待状态。
  
空闲态状态:MCU在无任务时会关闭核心工作时钟,任何中断都能唤醒系统,并重启核心时钟。
  SLEEP1状态:在空闲态基础上对所有外设掉电,外设中断无法唤醒系统。
  SLEEP2状态:在SLEEP1状态下关闭主SRAM(MSMB),并保持64KB SRAM处于保留模式。
  Hibernate状态:在SLEEP2基础上,关闭64KB SRAM。
  OFF state状态:关闭芯片电源,只能通过PWRKEY唤醒。

  1.2.1.2 投票

  模组是一个多任务系统,多任务平等的决定睡眠深度。最终睡眠的深度受多种因素影响,最终模组会尽可能进入一个能进入的最深睡眠模式。

  1.2.1.3 DeepSleep Timer


  支持在深睡眠模式下(SLEEP2及Hibernate)运行的timer。

  1.2.1.4 Retention IO


  支持在深睡眠模式下(SLEEP2及Hibernate)保持电平状态的IO。

  2 低功耗相关AT指令


  2.1 低功耗相关指令


  2.1.1 AT+LSCLK启用或禁用低功耗模式


  2.1.1.1 命令描述


  该命令用于设置模块是否进入低功耗模式。

  2.1.1.2 命令语法
指令类型
指令响应
测试命令
AT+LSCLK=?
+ LSCLK:(支持的<type>列表)
OK
执行命令
AT+LSCLK=<type>
OK
若出现任何错误:
ERROR
或者
+CME ERROR:<err>
查询指令
AT+LSCLK?
+LSCLK: <type>
OK
最大响应时间
5秒
指令说明
掉电保存

  2.1.1.3参数描述

  命令示例


  AT+LSCLK=?  +LSCLK: (0,2)
  OK  

  AT+LSCLK=1
  OK  

  AT+LSCLK?
  +LSCLK: 1
  OK  

  AT+CFUN=0
  OK

  AT+ECPURC="Hibnate",1
  OK

  AT+LSCLK=1
  OK
  +SLPMODE: 4
  +SLPMODE: 0

  AT+LSCLK=0
  OK

  AT+LSCLK=2
  OK
  +SLPMODE: 4

  2.1.2 AT+ECPURC设置平台URC信息上报

  2.1.2.1 命令描述

  该命令开启/禁止平台URC信息上报。

  2.1.2.2 命令语法

指令类型
指令响应
设置命令
AT+ECPURC=<urcStr>,
<value>
OK
若出现任何错误:
ERROR
或者
+CME ERROR: <err>
查询命令
AT+ECPURC?
+ECPURC: "HibernateNATE":<value>
OK
若出现任何错误:
ERROR
或者
+CME ERROR: <err>
最大响应时间5s
指令说明不保存
Note: AT&W will save <value> to NVM.

  2.1.2.3 参数描述

  2.1.2.4 命令示例

  AT+ECPURC="Hibnate",1  
  OK  

  +SLPMODE睡眠状态上报

  2.1.3.1 命令描述


  该指令为主动上报URC,退出或进入睡眠时上报URC以通知用户。仅在启用特定URC报告时报告。

  2.1.3.2 命令语法

指令类型
指令响应
主动上报+SLPMODE: <mode>

  2.1.3.3 参数描述

  2.1.3.4 命令示例

  AT+ECPURC="Hibnate",1 //enable Hibernate URC
  OK  
  +SLPMODE: 4            //entering Hibernate   
  +SLPMODE: 0            //enter active mode or sleep failed  

  3 硬件资源说明

  模组有1.25MB+64KB内存,32路GPIO(包含9路AON GPIO)。睡眠深度高于SLEEP1(包括)可以从Wakeup Pad,Low Power UART,Low Power USB,Power Key,Charge Pad和RTC唤醒。空闲态状态下任何外设中断均可唤醒系统。低功耗UART在低于9600bps波特率时可以直接通过串口唤醒系统,同时串口数据不会丢失。各睡眠状态下,模块的带电状态如下:

ACTIVE空闲态SLEEP1SLEEP2HibernateOFF
1.25MB Sram
ON
ON
ON
OFF
OFF
OFF
64KB Ret Sram
ON
ON
ON
ON
OFF
OFF
Normal IO
ON
ON
OFF
OFF
OFF
OFF
Ret IO
ON
ON
ON/OFF
ON/OFF
ON/OFF
OFF

  4 PMU软件

  4.1 睡眠模式下功耗实测


  以下测试数据使用NT35E模组测试,其中有寻呼态的场景为:建立了一路TCP,进休眠后模组可以收到下行数据。

  注:测试电压8V,其他电压对应功耗会稍有浮动。
    无寻呼态设置指令:AT+ECCFG="T3324MaxValueS",0或关闭射频:AT+CFUN=0。
    有寻呼态设置指令:AT+ECCFG="T3324MaxValueS",16777215并确定AT+CFUN=1。
    T3324MaxValueS指令重启生效。
    有寻呼态时,寻呼周期分为64S/1.28S/2.56S,上述功耗中联通和电信寻呼周期0.64S,移动寻呼周期为1.28S,具体寻呼周期间隔以用户使用SIM卡和网络下发参数为准。

  4.2 低功耗模式预设置
  模组支持四个级别低功耗模式:空闲态,SLEEP1,SLEEP2,Hibernate

  为尽可能的实现低功耗,用户应当选择可进入的最深睡眠模式。不同低功耗模式配置指令汇总如下:

  //进入睡眠模式需关闭USB投票等,否则可能无法进入低功耗模式,按如下指令配置:
  AT+ECPCFG="logPortSel",1
  
AT+ECPCFG="usbSlpMask",1
  //USB连接时需增加该设置,UART连接不需发送该指令,该指令重启生效
  AT+ECPCFG="usbCtrl",1  
  注意:使用ECPMUCFG进入Sleep1及更低功耗模式时,模组唤醒后需要20mS内发送AT指令,否则模组会再次进入对应等级的功耗模式,建议配合ECPURC进行测试
  AT+ECPURC="SLEEP1",1 //开启Sleep1睡眠通知
  AT+ECPURC="SLEEP2",1 //开启Sleep2睡眠通知
  AT+ECPURC="HibernateNATE",1//开启Hibernate睡眠通知
  //选择不同睡眠深度(方式1)
  AT+LSCLK=0             //将最大睡眠深度设置到空闲态
  AT+LSCLK=1             //将最大睡眠深度设置到Hibernate
  AT+LSCLK=2             //设备5s后进入Hibernate模式,有AT交互时唤醒
  //选择不同睡眠深度(方式2)
  AT+ECPMUCFG=0       //不使能低功耗模式
  AT+ECPMUCFG=1,1     //将最大睡眠深度设置到空闲态
  AT+ECPMUCFG=1,2     //将最大睡眠深度设置到Sleep1
  AT+ECPMUCFG=1,3     //将最大睡眠深度设置到Sleep2
  AT+ECPMUCFG=1,4     //将最大睡眠深度设置到Hibernate

  4.3 联通卡休眠AT示例

  联通卡由于4G基站支持PSM可以在低功耗模式下寻呼,所以在空闲态、Sleep1、Sleep2、Hibernate模式下仍可以接收下控消息,根据需求可以开启/关闭寻呼。

  注:实时下控类应用并需要进入低功耗模式应使用支持PSM的SIM卡

  4.3.1 支持寻呼


  AT+CFUN=1                            //打开射频
  AT+ECCFG="T3324MaxValueS",16777215 //设置T3324时钟,支持寻呼

  4.3.1.1 空闲态模式

  //下述两个指令任选其一可进入空闲态模式
  AT+LSCLK=0        //进入空闲态模式
  AT+ECPMUCFG=1,1 //进入空闲态模式

  4.3.1.2 Sleep1模式


  AT+ECPMUCFG=1,2 //进入Sleep1模式

  4.3.1.3 Sleep2模式

  AT+ECPMUCFG=1,2 //进入Sleep2模式

  4.3.1.4 Hibernate模式

  //下述三个指令任选其一可进入Hibernate模式
  AT+LSCLK=1         //立即进入Hibernate模式
  AT+LSCLK=2         //无操作5s后进入Hibernate模式
  AT+ECPMUCFG=1,4  //立即进入Hibernate模式

  4.3.2 不支持寻呼


  //下述两个指令任选其一可关闭寻呼
  AT+ECCFG="T3324MaxValueS",0    //关闭卡和基站之间的寻呼
  AT+CFUN=0                                    //关闭射频

  4.3.2.1 空闲态模式


  //下述两个指令任选其一可进入空闲态模式
  AT+LSCLK=0                                   //进入空闲态模式
  AT+ECPMUCFG=1,1                       //进入空闲态模式

  4.3.2.2 Sleep1模式


  AT+ECPMUCFG=1,2                  //进入Sleep1模式

  4.3.2.3 Sleep2模式


  AT+ECPMUCFG=1,3                   //进入Sleep2模式

  4.3.2.4 Hibernate模式


  //下述三个指令任选其一可进入Hibernate模式
  AT+LSCLK=1                           //立即进入Hibernate模式
  AT+LSCLK=2                          //无操作5s后进入Hibernate模式
  AT+ECPMUCFG=1,4               //立即进入Hibernate模式

  4.3.2.5 OFF State模式


  长按电源键可以进入OFF State模式。

  4.4 移动卡休眠AT示例


  移动卡由于4G基站不支持PSM无法在低功耗模式下寻呼,所以仅在空闲态、Sleep1模式下仍可以接收下控消息,根据需求可以开启/关闭寻呼。

  4.4.1 支持寻呼

  AT+CFUN=1                                               //保证射频打开
  AT+ECCFG="T3324MaxValueS",16777215 //设置T3324时钟,支持寻呼

  4.4.1.1空闲态模式


  //下述两个指令任选其一可进入空闲态模式
  AT+LSCLK=0                           //进入空闲态模式
  AT+ECPMUCFG=1,1                //进入空闲态模式

  4.4.1.2 Sleep1模式


  AT+ECPMUCFG=1,2             //进入Sleep1模式

  注:移动卡由于不支持PSM,所以在Sleep2及Hibernate模式不支持寻呼。

  4.4.2 不支持寻呼

  //下述两个指令任选其一可关闭寻呼
  AT+ECCFG="T3324MaxValueS",0 //关闭卡和基站之间的寻呼
  AT+CFUN=0                                 //关闭射频

  4.4.2.1 空闲态模式

  //下述两个指令任选其一可进入空闲态模式
  AT+LSCLK=0                                 //进入空闲态模式
  AT+ECPMUCFG=1,1                     //进入空闲态模式

  4.4.2.2 Sleep1模式

  AT+ECPMUCFG=1,2                       //进入Sleep1模式

  4.4.2.3 Sleep2模式


  AT+ECPMUCFG=1,3                       //进入Sleep2模式

  4.4.2.4 Hibernate模式

  //下述三个指令任选其一可进入Hibernate模式
  AT+LSCLK=1                               //立即进入Hibernate模式
  AT+LSCLK=2                              //无操作5s后进入Hibernate模式
  AT+ECPMUCFG=1,4                  //立即进入Hibernate模式

  4.4.2.5 OFF State模式

  长按电源键可以进入OFF State模式。

  4.5 电信卡休眠AT示例


  电信卡由于4G基站不支持PSM无法在低功耗模式下寻呼,所以仅在空闲态、Sleep1模式下仍可以接收下控消息,根据需求可以开启/关闭寻呼。

  4.5.1 支持寻呼


  AT+CFUN=1                            //打开射频
  AT+ECCFG="T3324MaxValueS",16777215 //设置T3324时钟,支持寻呼

  4.5.1.1 空闲态模式

  //下述两个指令任选其一可进入空闲态模式
  AT+LSCLK=0                          //进入空闲态模式
  AT+ECPMUCFG=1,1               //进入空闲态模式

  4.5.1.2 Sleep1模式


  AT+ECPMUCFG=1,2 //进入Sleep1模式

  注意:电信卡由于不支持PSM,所以Sleep2及Hibernate模式无法寻呼

  4.5.2 不支持寻呼


  //下述两个指令任选其一可关闭寻呼
  AT+ECCFG="T3324MaxValueS",0 //关闭卡和基站之间的寻呼
  AT+CFUN=0                                //关闭射频

  4.5.2.1 空闲态模式


  //下述两个指令任选其一可进入空闲态模式
  AT+LSCLK=0                              //进入空闲态模式
  AT+ECPMUCFG=1,1                  //进入空闲态模式

  4.5.2.2 Sleep1模式


  AT+ECPMUCFG=1,2              //进入Sleep1模式

  4.5.2.3 Sleep2模式


  AT+ECPMUCFG=1,3            //进入Sleep2模式

  4.5.2.4 Hibernate模式


  //下述三个指令任选其一可进入Hibernate模式
  AT+LSCLK=1                     //立即进入Hibernate模式
  AT+LSCLK=2                    //无操作5s后进入Hibernate模式
  AT+ECPMUCFG=1,4        //立即进入Hibernate模式

  4.5.2.5 OFF State模式

  长按电源键可以进入OFF State模式。

  4.6 低功耗唤醒流程参考


  模组提供两种唤醒方式:低功耗串口唤醒和Wakeup引脚唤醒,以下章节分别对这两种唤醒方式做介绍,用户可根据自己的应用场景选择合适的低功耗模式和低功耗唤醒方案。

  4.6.1 低功耗串口唤醒

  模组支持LPUART,AT串口在9600波特率及其以下可以直接发AT指令唤醒模组,并且能够识别该AT指令;9600以上波特率可以发送AT指令唤醒模组,但第一条AT指令会丢弃并且模组在唤醒后20ms内串口没有AT交互就会立即进入低功耗模式。参考流程如下:

  注:若使用USB,进休眠前需要禁止RNDIS(AT+ECPCFG="usbCtrl",1),该指令重启生效。
    设备进入SLEEP1或更低功耗模式时,发送AT可能因为指令间隔较长进而模组无响应,此时可以通过AT+ECPCFG="slpWaitTime",1000或者使用AT+LSCLK=2设置无操作后进入Hibernate的时间。
    9600波特率及以下串口唤醒第一包AT指令的长度需低于128Bytes,如果超过128Bytes则第一包数据仍会被识别为唤醒包。

  4.6.2 Wakeup引脚唤醒

  模组支持Wakeup引脚、UART1_DTR(NT35E)唤醒,模组的唤醒引脚请参考各型号的《硬件设计手册》。

  Wakeup引脚或UART1_DTR(NT35E)一直拉低,则模组会禁止进入休眠模式,参考流程如下:

  注:若使用USB,进休眠前需要禁止RNDIS(AT+ECPCFG="usbCtrl",1),该指令重启生效。

  5 相关文档


  以下相关文档提供了文档的名称,版本请以最新发布的为准。

序号
文档名称
注释
[1]
Lierda NT35E&NT26E-CN AT命令手册




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表