低功耗(旧方式,不推荐使用)
一、低功耗模式概述
1.1 背景说明
本篇文章所介绍的内容为旧版低功耗模式,针对旧版低功耗模式的维护策略为:仅修改 bug,不再增加新功能;
如果你的项目还没有量产,强烈建议使用新版本低功耗模式,新版低功耗模式的文章参考:Air780E AT 方式新版低功耗模式软件指南 ;
如果你的项目已经使用旧版低功耗模式量产,可以继续阅读本文章;
- 低功耗是合宙 4G Cat.1 模组最重要的特性之一;
- 合宙 4G Cat.1 模组有三种功耗模式,分别有各自的特点;
- 合宙 4G Cat.1 模组优异的低功耗表现,既有硬件设计的加持,也有软件协议算法的帮助;
- 不同的应用场景,按需选择不同的合宙 4G Cat.1 模组功耗模式,以及三种功耗模式之间的相互转换;
- 除实验室数据外,合宙更关注实网环境下的功耗表现,呈现给用户的效果更多以实网在线表现为准;
1.2 功耗模式
合宙低功耗模组三种功耗模式(CSCLK)主要区别如下:
AT+CSCLK = 1 | AT+CSCLK = 2 | AT+CSCLK = 3 | |
---|---|---|---|
MAIN_DTR 影响 | 拉低唤醒(缺省高) | 不受影响 | 不受影响 |
串口唤醒 | 9600 必唤醒,其他波特率需要多次发送 | 9600 必唤醒,其他波特率需要多次发送 | 9600 必唤醒,其他波特率需要多次发送 |
网络消息唤醒 | 支持 | 支持 | 支持 |
短信唤醒 | 支持 | 支持 | 支持 |
中断唤醒 | 支持 | 支持 | 支持 |
USB 情况 | VBUS 插入会唤醒模块,VBUS 给低电平允许模块休眠 | VBUS 插入会唤醒模块,VBUS 低电平允许模块休眠 | 关闭了 USB,VBUS 高低电平不影响模块休眠与否 |
1.4 关于 GPIO 的相关说明
合宙 Air700 系列/Air780 系列模组在"csclk 几种模式"下不同 GPIO 的功能表现不一致,请务必根据产品定义所需严谨选择,避免改版;
根据不同 GPIO 在"低功耗模式/PSM+ 模式下"的不同表现,可以将 GPIO 分为四类:
- AGPIO,有些文档中有时也会被写为 AON_GPIO,AlwaysON,一直保持的意思; 低功耗模式下既可以保持输出高,也可以保持输出低,但不能高低变换;
- AGPIOWU,也可以写为 AON_GPIO_WAKEUP,既能在低功耗模式下输出保持(输出高低都可以,但不能高低变换),也可以在低功耗模式下作为中断;
- WAKEUP,仅能作为输入,低功耗模式下可以作为中断;
- 普通 GPIO,低功耗模式下既不能保持输出高,也不能保持输出低;
二、演示功能概述
本文将给大家讲解 780E 三种功耗模式与对应的效果演示。
三、准备硬件环境
“古人云:‘工欲善其事,必先利其器。’在深入介绍本功能示例之前,我们首先需要确保以下硬件环境的准备工作已经完成。”
3.1 Air780E 开发板(全 IO 低功耗板)
本次使用的开发板为 Air780E 全 IO 低功耗板,如下图所示:
点击链接购买: 780E 全 IO 板
此核心板的详细使用说明参考:Air780E 产品手册 中的《开发板 EVB-Air780E-IO 使用说明 VX.X.X.pdf》,写这篇文章时最新版本的使用说明为:《开发板 EVB-Air780E-IO 使用说明 V1.2.0.pdf》 ,使用过程中遇到任何问题,可以直接参考这份使用说明 pdf 文档。
3.2 SIM 卡
请准备一张可正常上网的 SIM 卡,该卡可以是物联网卡或您的个人手机卡。
特别提醒:请确保 SIM 卡未欠费且网络功能正常,以便顺利进行后续操作。
3.3 PC 电脑
准备一台电脑;
电脑操作系统为:WIN10 以及以上版本的 WINDOWS 系统。
注意:电脑有 USB 口,并且可以正常上网!!!
3.4 数据通信线
请准备一根用于连接 Air780E 开发板和 PC 电脑的数据线,该数据线将实现业务逻辑的控制与交互。您有两种选择:
- USB 数据线(其一端为 Type-C 接口,用于连接 Air780E 开发板)。通常,这种数据线的外观如下示意图所示:
普通的手机 USB 数据线一般都可以直接使用;
在本教程中,我们将采用 USB 数据线配置进行测试和数据查看:
- USB 数据线:此数据线不仅用于为测试板供电,还用于查看数据日志。其一端为 Type-C 接口,连接 Air780E 开发板;另一端为标准 USB 接口,连接 PC 电脑。
3.5 可调电源
合宙功耗分析仪 Air9000P——合宙自研的一款功能齐全、稳定可靠、支持 PC 端软件的小型手持式高精度功耗测试仪表(电流范围 0~2A,最小分辨率 0.1μA;电压范围 0~5V,最小分辨率 1mV;硬件采样率 100KHz,PC 端软件采样率 10KHz)。合宙功耗分析仪 Air9000P 对于小电流的抓取能力及其对功耗数据的统计分析,尤其适合电池供电产品的动态功耗测试,可解决各类场景下的低功耗产品测试难题。
合宙功耗分析仪详细介绍链接:www.hezhouyibiao.com
3.6 组装硬件环境
3.6.1 请按照 SIM 卡槽上的指示方向正确插入 SIM 卡,务必确保插入方向正确,避免插反导致损坏!
通常,放置 SIM 卡的步骤如下:
- 将 SIM 卡的金属接触面朝下,对准卡槽的开口。
- 平稳地将 SIM 卡放置卡槽,向上推金属盖直至听到“咔嚓”一声,表示 SIM 卡已正确安装到位。
3.6.2 USB 数据线,连接电脑和 Air780E 全 IO 开发板,如下图所示:
四、准备软件环境
“凡事预则立,不预则废。”在详细阐述本功能示例之前,我们需先精心筹备好以下软件环境。
4.1 Luatools 工具
要想烧录 AT 固件到 4G 模组中,需要用到合宙的强大的调试工具:Luatools;
下载地址:Luatools v3 下载调试工具。
Luatools 工具集具备以下几大核心功能:
- 一键获取最新固件:自动连接合宙服务器,轻松下载最新的合宙模组固件。
- 固件与脚本烧录:便捷地将固件及脚本文件烧录至目标模组中。
- 串口日志管理:实时查看模组通过串口输出的日志信息,并支持保存功能。
- 串口调试助手:提供简洁的串口调试界面,满足基本的串口通信测试需求。
Luatools 下载之后, 无需安装, 解压到你的硬盘,点击 Luatools_v3.exe 运行,出现如下界面,就代表 Luatools 安装成功了:
4.2 串口调试工具
在量产的项目硬件设计中,一般都是由主控 MCU 通过 MCU 的 UART 给 4G 模组的 UART1 发送命令实现具体的业务逻辑;
在本教程中,为了测试方便,没有使用主控 MCU;
而是使用了 PC 电脑上的一个串口工具 LLCOM,通过 TTL 转 USB 模块给 780E 的 uart1 发送命令来实现演示功能;
4.2.1 确定模块内部固件
模块出厂如无特殊要求,就是 AT 版本,可以直接走串口一发 AT 指令,发送前可以通过 luatools 确定当前模块固件类型,如果模块类型不是 AT 固件,需要使用 USB 烧录 AT 固件。如下图所示位置,即可看出模块固件内部为 luatos 版本,非 AT 版本,需要重新下载 AT 固件,如果已经是 AT 固件了,则大多数情况下就不需要通过 luatools 烧录 AT 固件了。如果需要下载 AT 固件,则继续看包含在 5.2.2 以内的第五节所有内容,如果当前已经是 AT 固件,且查看过 AT 固件版本说明,当前的版本满足需求的,直接开始看第五节
4.2.2 找到烧录的固件文件
如果模块内部不是 AT 版本,或者说不是你想要的 AT 版本,则可以通过 Luatools 给 780E 烧录对应 AT 固件,AT 固件版本可以点击此处查看
本文使用的是 AirM2M_780E_V1163_LTE_LPAT
4.3 烧录固件
特别说明:core 大于等于 V1163 的 LPAT 版本,才能支持这三种低功耗模式。
4.3.1 正确连接电脑和 4G 模组电路板
使用带有数据通信功能的数据线,不要使用仅有充电功能的数据线;
4.3.2 识别 4G 模组的 boot 引脚
在下载之前,要用模组的 boot 引脚触发下载, 也就是说,要把 4G 模组的 boot 引脚拉到 1.8v,或者直接把 boot 引脚和 VDD_EXT 引脚相连。我们要在按下 BOOT 按键时让模块开机,就可以进入下载模式了。
具体到 Air780E 全 IO 开发板,
- 当我们模块没开机时,按着 BOOT 键然后长按 PWR 开机。
- 当我们模块开机时,按着 BOOT 键然后点按重启键即可。
4.3.3 识别电脑的正确端口
判断是否进入 BOOT 模式:模块上电,此时在电脑的设备管理器中,查看串口设备, 会出现一个端口表示进入了 boot 下载模式,如下图所示:
如果设备管理器出现了 3 个连续数字的 com 端口,这时候, 证明硬件连接就绪,模块正常开机且端口识别正常
此时按住 boot 按键,再按下重启按键就可以进行烧录了!
4.3.4 打开 Luatools
首先,确保你的 Luatools 的版本大于或者等于 3.0.6 版本.
在 Luatools 的左上角上有版本显示的,如图所示:
注:模块如果进入了 boot 模式,但是没有烧录动作,boot 模式会持续 40s 左右,然后正常开机
4.3.5 使用 luatools 烧录固件
点击点击下载后,出现如下提示以后,如果模块开机就按住 boot 按键再按住重启键,使模块进入 boot 模式,如果模块未开机,则按住 boot 按键,再按住开机键,模块也能进入 boot 模式
等待几秒后会出现
再等 30 多 S 以后,下载框就会提示
此时,使用 llcom 选择 TTL 转 USB 模块对应端口,并且点击"打开串口",发送第一条指令"AT*I"(注:模块默认波特率为 115200,如果需要需要 9600 或其他波特率,可以先用 115200 波特率发送 at+ipr=9600,其中等号后面的就是想要设置的波特率,可以设置的波特率如下:0,600,1200,2400,4800,9600,19200,38400,57600,115200,230400,460800,921600,1000000,2000000,3000000)
五、低功耗模式软硬件资料
5.1 硬件设计资料
硬件可以参考这里 https://docs.openluat.com/air780e/product/
5.2 软件设计资料
5.2.1 软件 AT 指令
最核心的就是这条
AT+CSCLK
示例:
AT+CSCLK=2
六、功耗模式简介
前面已经介绍过三种功耗模式了,这里就不再做过多重复解释了
6.1 CSCLK=1 简介
此种模式和其他模式最大的区别就是 MAIN_DRX 拉低会唤醒模块
6.1.1 AT 指令示例
注:如果不需要网络灯,一定要使用 AT+CNETLIGHT=0 关闭网络灯,不然会有很多不必要的电流产生
完整 AT 交互流程
2024-11-20 11:23:14.103 +08:00 [INF] ->
RDY
2024-11-20 11:23:15.765 +08:00 [INF] ->
^MODE: 17,17
+E_UTRAN Service
+CGEV: ME PDN ACT 1,0
+NITZ: 2024/11/20,03:23:16+0,0
2024-11-20 11:23:19.985 +08:00 [INF] <-AT
2024-11-20 11:23:20.102 +08:00 [INF] ->AT
OK
2024-11-20 11:23:21.445 +08:00 [INF] <-ATE0
2024-11-20 11:23:21.564 +08:00 [INF] ->ATE0
OK
2024-11-20 11:23:24.115 +08:00 [INF] <-AT+IPR=9600;&W
2024-11-20 11:23:24.269 +08:00 [INF] ->
OK
2024-11-20 11:23:26.242 +08:00 [INF] <-AT*I
2024-11-20 11:23:33.763 +08:00 [INF] <-AT*I
2024-11-20 11:23:34.097 +08:00 [INF] ->
Manufacturer: AirM2M
Model: Air780E
Revision: AirM2M_780E_V1171_LTE_AT
HWver: A17
Buildtime: Oct 24 2024 23:49:55
IMEI: 867713070153887
ICCID: 898604981022C0256554
IMSI: 460081899906554
OK
2024-11-20 11:23:36.862 +08:00 [INF] <-AT+WAKETIM=5
2024-11-20 11:23:37.013 +08:00 [INF] ->
OK
2024-11-20 11:23:41.236 +08:00 [INF] <-AT+CSCLK=1
2024-11-20 11:23:41.373 +08:00 [INF] ->
OK
2024-11-20 11:23:51.390 +08:00 [INF] <-AT+CIPSTART="TCP",112.125.89.8,47240
2024-11-20 11:23:51.560 +08:00 [INF] ->
OK
2024-11-20 11:23:51.744 +08:00 [INF] ->
CONNECT OK
2024-11-20 11:23:52.310 +08:00 [INF] <-AT+CIPSEND=100
2024-11-20 11:23:52.457 +08:00 [INF] ->
>
2024-11-20 11:23:53.586 +08:00 [INF] <-0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
2024-11-20 11:23:53.829 +08:00 [INF] ->
SEND OK
2024-11-20 11:26:20.880 +08:00 [INF] <-AT+CNETLIGHT=0
2024-11-20 11:26:21.024 +08:00 [INF] ->
OK
服务器 ip 和端口号,请改成用户自己使用的服务的 IP/域名以及端口号,如果仅作测试,也可以使用合宙提供的测试服务器,测试服务器相关资料可以点击此处 https://netlab.luatos.com/ 进入后选择打开 TCP/UDP(根据用户服务器类型自行选择)
打开后,如图所示位置即是 IP 和端口号
6.1.2 硬件链接
测试时将可调电源正极接在 USB 下方的排针处,VBAT 即为电源正极所接的位置,GND 即为电源负极接的位置
6.1.3 展示效果
下图为链接好服务器后什么都不做的功耗,其中平均电流为 1.1745mA,每一个尖峰均为和基站进行一些底层的数据交互导致的电流增大,这些交互不能省,均是 3GPP 协议规定的交互,如果省去,都有可能导致掉网。
红框内为给服务器发送一次数据到休眠所需要的时间,可以看出从唤醒到给服务器发送数据完成再到最后最后休眠,总计花费约 11S(整个过程可以分为两个阶段,第一阶段是唤醒并且发送数据到服务器,这一阶段的持续时长不会超过 1 秒钟;第二阶段是等待进入休眠,这个阶段的持续时长由基站决定,有可能 3S 不到也有可能 10S,但是一般不会超过 15S),平均电流约为 17.5393mA
选中的部分为服务器下发一次数据到模块休眠的完整过程,可以看出从唤醒到收到服务器数据发送给串口 1 然后休眠,总计花费约 10S(整个过程可以分为两个阶段,第一阶段是唤醒并且接收到服务器的数据,这一阶段的持续时长不会超过 1 秒钟;第二阶段是等待进入休眠,这个阶段的持续时长由基站决定,有可能 3S 不到也有可能 10S,但是一般不会超过 15S),平均电流约为 21.81mA
6.2 CSCLK=2 简介
该模式可以实现与服务器之间进行长连接,服务器可随时下发数据给客户端,实现在低功耗情况下还能实时远程控制的功能,该模式下 MAIN_DRX 拉低不会唤醒模块
6.2.1 AT 指令示例
完整交互如下
2024-11-21 10:13:23.061 +08:00 [INF] ->^boot.rom'v'!\n
2024-11-21 10:13:24.052 +08:00 [INF] ->
RDY
2024-11-21 10:13:25.660 +08:00 [INF] ->
^MODE: 17,17
+E_UTRAN Service
+CGEV: ME PDN ACT 1,0
+NITZ: 2024/11/21,02:13:25+0,0
2024-11-21 10:14:05.398 +08:00 [INF] <-AT
2024-11-21 10:14:05.525 +08:00 [INF] ->AT
OK
2024-11-21 10:14:06.796 +08:00 [INF] <-ATE0
2024-11-21 10:14:06.920 +08:00 [INF] ->ATE0
OK
2024-11-21 10:14:09.585 +08:00 [INF] <-AT+IPR=9600;&W
2024-11-21 10:14:09.732 +08:00 [INF] ->
OK
2024-11-21 10:14:16.514 +08:00 [INF] <-AT*I
2024-11-21 10:14:23.744 +08:00 [INF] <-AT*I
2024-11-21 10:14:24.079 +08:00 [INF] ->
Manufacturer: AirM2M
Model: Air780E
Revision: AirM2M_780E_V1171_LTE_AT
HWver: A17
Buildtime: Oct 24 2024 23:49:55
IMEI: 867713070153887
ICCID: 898604981022C0256554
IMSI: 460081899906554
OK
2024-11-21 10:14:30.754 +08:00 [INF] <-AT+CREG?
2024-11-21 10:14:30.888 +08:00 [INF] ->
+CREG: 0,1
OK
2024-11-21 10:14:42.886 +08:00 [INF] <-AT+CSCLK=2
2024-11-21 10:14:43.030 +08:00 [INF] ->
OK
2024-11-21 10:14:48.124 +08:00 [INF] <-AT+CREG?
2024-11-21 10:14:48.255 +08:00 [INF] ->
+CREG: 0,1
OK
2024-11-21 10:14:51.050 +08:00 [INF] <-AT+CIPSTART="TCP",112.125.89.8,42317
2024-11-21 10:14:51.222 +08:00 [INF] ->
OK
2024-11-21 10:14:51.409 +08:00 [INF] ->
CONNECT OK
2024-11-21 10:14:53.450 +08:00 [INF] <-AT+CIPSEND=100
2024-11-21 10:14:53.599 +08:00 [INF] ->
>
2024-11-21 10:14:54.473 +08:00 [INF] <-0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
2024-11-21 10:14:54.707 +08:00 [INF] ->
SEND OK
2024-11-21 10:15:25.334 +08:00 [INF] <-AT+CNETLIGHT=0
2024-11-21 10:15:25.474 +08:00 [INF] ->
OK
服务器 ip 和端口号,改成用户自己使用的服务的 IP/域名以及端口号,如果仅作测试,也可以使用合宙提供的测试服务器,测试服务器相关资料可以点击此处 https://netlab.luatos.com/ 进入后选择打开 TCP/UDP(根据用户服务器类型自行选择)
打开后,如图所示位置即是 IP 和端口号
6.2.2 硬件链接
特别注意,由于 2.1 版本全 IO 开发板 USB 下方的 ESD 会影响功耗,所以测试时需要将该 ESD 吹掉后测试。
测试时将可调电源正极接在 USB 下方的排针处,VBAT 即为电源正极所接的位置,GND 即为电源负极接的位置
6.2.3 展示效果
下图为 CSCLK=2 模式下,链接 TCP 但是不发数据时,模块的功耗情况,每一处尖峰都是与基站之间进行必要的通讯带来的电流增大
下图红框内为收到服务器下发数据时的功耗数据,可以看出从唤醒到收到服务器数据再到处理完数据进入休眠总计花费约 11S(整个过程可以分为两个阶段,第一阶段是唤醒并且接收到服务器的数据,这一阶段的持续时长不会超过 1 秒钟;第二阶段是等待进入休眠,这个阶段的持续时长由基站决定,有可能 3S 不到也有可能 10S,但是一般不会超过 15S),平均电流约为 13.7mA
下图为给服务器发数据时候的功耗,可以看出,从唤醒到发送数据最后继续休眠总计用时 11S 左右(整个过程可以分为两个阶段,第一阶段是唤醒并且发送数据到服务器,这一阶段的持续时长不会超过 1 秒钟;第二阶段是等待进入休眠,这个阶段的持续时长由基站决定,有可能 3S 不到也有可能 10S,但是一般不会超过 15S),此段的平均电流约为 13.73mA
6.3 CSCLK=3 模式简介
该模式和其他模式最大的区别是关闭了模块的 USB,所以 VBUS 高低电平不会影响模块的功耗
6.3.1 AT 指令示例
完整 AT 指令流程如下:
2024-11-21 10:51:15.269 +08:00 [INF] ->^boot.rom'v'!\n
2024-11-21 10:51:16.293 +08:00 [INF] ->
RDY
2024-11-21 10:51:18.019 +08:00 [INF] ->
^MODE: 17,17
2024-11-21 10:51:18.176 +08:00 [INF] ->
+E_UTRAN Service
+CGEV: ME PDN ACT 1,0
+NITZ: 2024/11/21,02:51:18+0,0
2024-11-21 10:51:37.973 +08:00 [INF] <-AT
2024-11-21 10:51:38.093 +08:00 [INF] ->AT
OK
2024-11-21 10:51:38.826 +08:00 [INF] <-ATE0
2024-11-21 10:51:38.951 +08:00 [INF] ->ATE0
OK
2024-11-21 10:51:40.419 +08:00 [INF] <-AT+IPR=9600;&W
2024-11-21 10:51:40.567 +08:00 [INF] ->
OK
2024-11-21 10:51:42.258 +08:00 [INF] <-AT*I
2024-11-21 10:51:52.045 +08:00 [INF] <-AT*I
2024-11-21 10:51:52.377 +08:00 [INF] ->
Manufacturer: AirM2M
Model: Air780E
Revision: AirM2M_780E_V1171_LTE_AT
HWver: A17
Buildtime: Oct 24 2024 23:49:55
IMEI: 867713070153887
ICCID: 898604981022C0256554
IMSI: 460081899906554
OK
2024-11-21 10:51:54.864 +08:00 [INF] <-AT+CNETLIGHT=0
2024-11-21 10:51:54.991 +08:00 [INF] ->
OK
2024-11-21 10:51:57.975 +08:00 [INF] <-AT+CREG?
2024-11-21 10:51:58.121 +08:00 [INF] ->
+CREG: 0,1
OK
2024-11-21 10:52:04.315 +08:00 [INF] <-AT+CSCLK=3
2024-11-21 10:52:04.465 +08:00 [INF] ->
OK
2024-11-21 10:52:09.428 +08:00 [INF] <-AT+CIPSTART="TCP",112.125.89.8,42317
2024-11-21 10:52:09.602 +08:00 [INF] ->
OK
2024-11-21 10:52:09.820 +08:00 [INF] ->
CONNECT OK
2024-11-21 10:52:11.109 +08:00 [INF] <-AT+CIPSEND=100
2024-11-21 10:52:11.252 +08:00 [INF] ->
>
2024-11-21 10:52:12.628 +08:00 [INF] <-0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
2024-11-21 10:52:12.863 +08:00 [INF] ->
SEND OK
服务器 ip 和端口号,改成用户自己使用的服务的 IP/域名以及端口号,如果仅作测试,也可以使用合宙提供的测试服务器,测试服务器相关资料可以点击此处 https://netlab.luatos.com/ 进入后选择打开 TCP/UDP(根据用户服务器类型自行选择)
打开后,如图所示位置即是 IP 和端口号
6.3.2 硬件链接
特别注意,由于 2.1 版本全 IO 开发板 USB 下方的 ESD 会影响功耗,所以测试时需要将该 ESD 吹掉后测试。
测试时将可调电源正极接在 USB 下方的排针处,VBAT 即为电源正极所接的位置,GND 即为电源负极接的位置
6.3.3 展示效果
下图红框内为 csclk=3 模式下,发送数据时的功耗,从发送数据到最后进入休眠总计花费约 11S(整个过程可以分为两个阶段,第一阶段是唤醒并且发送数据到服务器,这一阶段的持续时长不会超过 1 秒钟;第二阶段是等待进入休眠,这个阶段的持续时长由基站决定,有可能 3S 不到也有可能 10S,但是一般不会超过 15S),这 11S 内平均电流约为 12.61mA
下图红框内为收到服务器下发数据时的功耗数据,可以看出从唤醒到收到服务器数据再到处理完数据进入休眠总计花费约 11S(整个过程可以分为两个阶段,第一阶段是唤醒并且接收到服务器的数据,这一阶段的持续时长不会超过 1 秒钟;第二阶段是等待进入休眠,这个阶段的持续时长由基站决定,有可能 3S 不到也有可能 10S,但是一般不会超过 15S),平均电流约为 16.14mA
下图为 csclk=3 模式下,模块链接服务器后待机时的功耗
七、 常见问题
7.1 我的硬件板子上还是需要一个 USB 口的,如果拆了或者不加 ESD 可能会有外部电流窜进来有可能会击穿模块,但加了全 IO 开发板上的 ESD 会有额外的功耗增加,具体会增加多少,有数据吗
TCP(ESD 吹掉)数传周期 5 分钟 测试总时长 30 分钟
由左右两幅图所示,ESD 去掉后功耗大约降了 10%
7.2 听说 UDP 比 TCP 更省电,有数据支撑吗,具体省多少
由两幅图可得,TCP 要比 UDP 高 10% 左右,如果数传周期拉长到 10 分钟、一个小时、甚至一天,则差的会更多。
7.3 为什么我的测试结果和你的测试结果大相径庭,甚至是你测试的 2 倍、5 倍不止
针对此类问题,可以先购买全 IO 开发板进行测试,购买链接:https://item.taobao.com/item.htm?id=724722276597&spm=a1z10.3-c-s.w4002-24045920836.11.386d6ee5KIyXU3&skuId=5208106143672
如果使用的是全 io 开发板,且使用的是超低功耗(PSM+)模式,仍然没有到 3uA 左右,可以参考 7.3.1 和 7.3.2 两个排查方案
如果使用的是全 io 开发板,且使用的是低功耗长连接模式,和上面 6.2.3 描述的电流差异较大,可以参考 7.3.1、7.3.2 和 7.3.3 三种排查方案
如果使用的用户自行设计的 PCB,可以先按照 7.3.2、7.3.3 和 7.3.4 方向进行排查
7.3.1 检查 ESD 和 io 选择引脚
全 IO 开发板 V2.1 版本 USB 下方的 ESD 有没有吹下来(如下图 7.3.1 图一所示),该 ESD 会影响功耗 10uA 左右,io 选择引脚是否短接到了 1.8V 这边(如下图 7.3.1 图二所示),3.3V 和 1.8V 引脚所需要的电流也不一样
7.3.2 检查代码
这三种模式中,uart 口唤醒/AGPIO 唤醒/wakeup 脚都可以唤醒模块,检查下自己是否使用了对应引脚,例如串口有什么任务没关,wakeup 脚是否碰到了高电平管脚等。
7.3.3 检查模块天线链接与驻网频段
可以在 AT 指令"AT+CGATT?"回复"+CGATT: 1"以后加上一条 AT 指令"AT+CCED=0,1"
该接口回复示例
不同的信号值(rsrp)和不同的频段,功耗也不一样,其中信号值的影响更大一些,因为信号差的地方,需要射频电路发射功率更大才能维持和基站之间的正常通讯,当然,不同频段射频电路的发射/接收功率也不同。
如果信号较差,可以看下天线接触是否正常,全 IO 开发板的弹簧天线,没有做过阻抗匹配,所以信号可能不会特别的好,可以先用斜口钳剪断弹簧天线,再使用开发板上的 ipx1 座子,接一根天线出来,如下 7.3.3 图一所示
还有一种较小概率的情况,就是当前模块信号特别好,但是测试出的功耗数据很差,甚至比我上面的数据大了好几倍,有可能遇到了特殊基站,可以参考 https://docs.openluat.com/howtouselog/#_5 这篇文章,抓底层日志给合宙看看是什么情况了
如果遇到功耗差异比较大的情况,可以先查看下周围的频段,再锁频段进行测试,具体操作如下:
准备一台安卓手机(注意安卓版本要 7.0 以上),安装“Cellular-Z”这个 APP。(在 APP 商城搜索 Cellular-Z)。
其次,在手机的设置里,将"5G"关闭,打开 celular-z,看看当前小区频段和 RSRP,以及邻小区的 rsrp 的值,选择一个最好的 rsrp,并且记下对应的频段
接下来使用对应的手机卡,插入全 IO 开发板的 sim1 卡槽内
在 AT 指令的最开头加入锁频段的语句(根据你搜到的频段填入对应频段,不能直接复制粘贴过去):
AT+ECBAND=3,34(3 即是 BAND3,34 即是 BAND34)
如果只需要锁一个频段测试,可以这么写 AT+ECBAND=3
7.3.4 检查硬件 PCB 设计
例如 DCDC,很多客户使用的是 5V 转 4V 的 DCDC 给 vbat 供电,此时就需要计算下 DCDC 的损耗了
再比如,漏电流,又或者电源管理芯片的选择。可以对比全 io 开发板的 PCB 和自己的 PCB 来进行功耗问题的排查
7.4 这三种模式怎么切换,如果我想退出这三种模式应该怎么做
三种模式可以随时使用 AT+CSCLK=1/2/3 切换,且不需要重连服务器,如果需要退出,可以使用 AT+CSCLK=0
给读者的话
本篇文章由
黄何
开发; 本篇文章描述的内容,如果有错误、细节缺失、细节不清晰或者其他任何问题,总之就是无法解决您遇到的问题; 请先登录合宙技术交流论坛,然后点击右边链接文档找错赢奖金-Air780E-AT-软件指南-应用实例-低功耗(旧方式,不推荐使用) 用截图标注 + 文字描述的方式跟帖回复,记录清楚您发现的问题; 我们会迅速核实并且修改文档; 同时也会为您累计找错积分,您还可能赢取月度找错奖金!