时间:2026-03-24 16:51
人气:
作者:admin
在物联网电池供电设备的设计中,低功耗表现直接影响产品续航与整体可靠性。
不少开发者在调试深度休眠场景时都会遇到一个共性问题:模组进入低功耗模式后,如何保证小电流参考电平持续稳定?
本文要介绍的 Vref 功能,依托 AGPIO 引脚在休眠状态下的特性,正是应对这类问题的实用设计。
先要明确,这里所说的“电源”之所以加引号,核心原因是它并非真正意义上的供电模块——既不是模组内部的DCDC直流变换电路,也不是LDO低压差线性稳压器,本质上就是模组的AGPIO管脚。
在模组中,Vref通常指PIN99:GPIO23

在低功耗模式下,如:
pm.WORK_MODE,1
pm.WORK_MODE,3
Vref可以保持固定高电平输出,从而作为外部电路的“参考电源”使用。
为什么要使用Vref,要从VDD_EXT的局限说起。大家还记得我们在VDD_EXT章节中对VDD_EXT一个重要特性的介绍吗?
因此,在可能影响低功耗模式pm.WORK_MODE,1下中断唤醒的场合,要避免使用VDD_EXT做上拉电平用,比如UART1电平转换电路(UART1为LPUART,低功耗模式pm.WORK_MODE,1 下可被唤醒)。
如下图所示:UART1电平转换电路里出现的VREF,就是我们今天要介绍的对外“电源”——Vref。
如果图中的VREF电源使用的是VDD_EXT,那么低功耗模式pm.WORK_MODE,1 下模组的UART1_RX频繁的高低电平变化就会将模组唤醒,进而导致模组退出低功耗模式而功耗无法降低。
也正是因为类似场景的需要,所以会将譬如PIN99:GPIO23这样的AGPIO固定输出高作为Vref使用。
一般来说,如果没有其它特殊情况,都是将PIN99:GPIO23作为Vref参考电压使用。
Vref本质上指的是AGPIO3-8这6个GPIO,对应GPIO23~28。
具有以下特性:
在模组的实际应用中,一般默认固定推荐PIN99:GPIO23作为Vref使用 ——当然其它5个管脚GPIO24-28,如果软件设置为一直输出高,也可以作为Vref使用;GPIO23当然也是一个普通的AGPIO,如果不做Vref,本身与GPIO24-28没有任何区别。
Vref适用于需要低功耗且稳定参考电压的场景,下面介绍几个应用案例。
在SIM卡热插拔检测电路中,常用Vref给USIM_DET(WAKEUP2)提供上拉。
说明:图中的VREF_VOLIT就是Vref,在不同的原理图中可能存在不同的命名,请理解。
再次强调一下,当前模组、开发板、核心板或对外资料中,都是拿PIN99:GPIO23作为Vref使用的,但并不妨碍GPIO24-28也可以作为Vref,也并不妨碍PIN99作为GPIO23使用。
需要特别指出的是:
如果你的硬件需要在休眠状态下(低功耗模式pm.WORK_MODE,1 和 PSM+模式pm.WORK_MODE,3)也可以稳定输出的电源,请根据需要选择外置的DCDC或者LDO。
VDD_EXT在休眠状态下不可以稳定输出;Vref压根就不是“电源”,请特别注意!
使用Vref功能的顺序是,先将PIN99配置为GPIO23,再将GPIO23设置为输出高。
需要提醒的是:GPIO23作为Vref使用时会增加系统功耗,通常会增加100uA+,一般不超过200uA,请根据自己应用的定义和需要谨慎设计。
通过LuatIO工具进行配置,新朋友可参考资料中心LuatIO使用教程
1--
设置gpio23为输出,且初始化电平为高
2 gpio.setup(23, 1);
各型号模组对Vref(GPIO23)的处理有所不同,使用时需注意:
带Wi-Fi功能的型号(比如Air8000A、Air8000W),GPIO23用于控制Wi-Fi功能使能。
如果需要将Wi-Fi芯片关闭以节省功耗:可以使用pm.power(pm.WIFI, 0)关闭。
pm.power(pm.WIFI, 0)本质上是控制GPIO23输出低。
带GNSS定位的型号——比如Air780EGH、Air780EGG、Air780EGP,GPIO23模组内部皆有使用,默认输出高。
外部需要更改其状态时,需注意如下事项:
以下是Air780EGP/Air780EGG两款模组中内部占用的信号管脚,以及对应的详细说明:
| 模组型号 | Air780EGH | Air780EGP/Air780EGG | 相关说明 |
|---|---|---|---|
| GPIO21PIN107 | ✅ | ✅ | 内部用于主控芯片打开和关闭 GNSS 芯片 |
| UART2PIN28/29 | ✅ | ✅ | 内部用于主控芯片与 GNSS 芯片通信用 |
| GPIO23 (Vref)PIN99 | ✅ | ✅ | Air780EGH 内部用于 GNSS 芯片的后备供电,以便星历保持,在需要时热启动;Air780EGP/Air780EGG 除给 GNSS 芯片后备供电外,还给 G-Sensor 供电。将 GPIO23 设置为输入可以进一步降低功耗,代价是关闭了 G-Sensor 震动唤醒和 GNSS 备电不再支持热启动两个功能,大家根据自己的实际场景进行选择和设置。 |
| I2C1PIN66/67 | 未被占用 | ✅ | Air780EGH 内部没有占用,可作为 I2C1 供外部自由使用,也可复用为其它功能;Air780EGP/EGG 内部将此管脚作为 I2C1 挂载了 G-Sensor,因此外部只可作为 I2C1 使用,且不能与内部 G-Sensor 的 I2C 地址 0x27 冲突;且外部使用 I2C1 时需保持 GPIO23 为默认输出高的状态,不可将 GPIO23 改为输出低的状态,否则会影响该 I2C1 总线的正常初始化。 |
| WAKEUP2 (USIM_DET)PIN79 | 未被占用 | ✅ | Air780EGH 与 Air780EPM/EHV 等一样,供外部用作 SIM 卡热插拔检测;Air780EGP/EGG 内部将此管脚用作了 G-Sensor 振动时的中断输入,外部不可再用。 |
其它型号GPIO23没做处理,也没有根据是否启用SIM2做GPIO23强制输出高的设置,需要自己手动设置。
审核编辑 黄宇