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

在低功耗模式下,如:
pm.WORK_MODE,1
pm.WORK_MODE,3
Vref可以保持固定高电平输出,从而作为外部电路的“参考电源”使用。
二、为什么要使用Vref?
为什么要使用Vref,要从VDD_EXT的局限说起。大家还记得我们在VDD_EXT章节中对VDD_EXT一个重要特性的介绍吗?
- VDD_EXT标称输出电流最大至200mA,但是VDD_EXT同时用于模组芯片内部和外部,为了保证内部该电压域负载的使用稳定性,请保证外部负载消耗电流不要超过50mA。
- VDD_EXT在低功耗模式pm.WORK_MODE,1状态下间歇性输出,频率和与通信协议要求的时间间隔相同,通常为0.64S/1.28S/2.56S中的一个。
因此,在可能影响低功耗模式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的特性要点
Vref本质上指的是AGPIO3-8这6个GPIO,对应GPIO23~28。
具有以下特性:
- 在低功耗模式pm.WORK_MODE,1和PSM+模式pm.WORK_MODE,3下,可以保持固定高电平输出。
- 输出电流能力有限:单个AGPIO最大输出电流仅5mA,且这6个GPIO的总输出电流也不超过5mA。因此,它不能驱动大功率负载,只能用于微功耗的参考电压或上拉用途。
在模组的实际应用中,一般默认固定推荐PIN99:GPIO23作为Vref使用 ——当然其它5个管脚GPIO24-28,如果软件设置为一直输出高,也可以作为Vref使用;GPIO23当然也是一个普通的AGPIO,如果不做Vref,本身与GPIO24-28没有任何区别。
四、Vref的应用场景
Vref适用于需要低功耗且稳定参考电压的场景,下面介绍几个应用案例。
4.1 UART1电平转换电路的上拉电源
- 解决VDD_EXT间歇性输出导致的误唤醒问题
- GPIO23提供稳定高电平,确保休眠期间UART1可靠工作
4.2 SIM卡插入检测
在SIM卡热插拔检测电路中,常用Vref给USIM_DET(WAKEUP2)提供上拉。
说明:图中的VREF_VOLIT就是Vref,在不同的原理图中可能存在不同的命名,请理解。
4.3 通信定位二合一模组中的备用供电
- 在Air780EGP、Air780EGG、Air780EGH、Air8000G等型号中,Vref用来作为内置GNSS定位芯片的备用供电电源使用。
- 在Air780EGP/EGG中:
也作为加速度传感器G-Sensor的供电电源使用。
这两处的耗电都非常小,100uA以内,可以满足。
4.4 特别说明
再次强调一下,当前模组、开发板、核心板或对外资料中,都是拿PIN99:GPIO23作为Vref使用的,但并不妨碍GPIO24-28也可以作为Vref,也并不妨碍PIN99作为GPIO23使用。
需要特别指出的是:
如果你的硬件需要在休眠状态下(低功耗模式pm.WORK_MODE,1 和 PSM+模式pm.WORK_MODE,3)也可以稳定输出的电源,请根据需要选择外置的DCDC或者LDO。
VDD_EXT在休眠状态下不可以稳定输出;Vref压根就不是“电源”,请特别注意!
五、Vref的使用方法
使用Vref功能的顺序是,先将PIN99配置为GPIO23,再将GPIO23设置为输出高。
需要提醒的是:GPIO23作为Vref使用时会增加系统功耗,通常会增加100uA+,一般不超过200uA,请根据自己应用的定义和需要谨慎设计。
5.1 将PIN99配置为GPIO23
通过LuatIO工具进行配置,新朋友可参考资料中心LuatIO使用教程
5.2 配置GPIO23输出高点平
1--
设置gpio23为输出,且初始化电平为高
2 gpio.setup(23, 1);
六、模组的出厂默认设置
各型号模组对Vref(GPIO23)的处理有所不同,使用时需注意:
6.1 Air8000系列模组
带Wi-Fi功能的型号(比如Air8000A、Air8000W),GPIO23用于控制Wi-Fi功能使能。
如果需要将Wi-Fi芯片关闭以节省功耗:可以使用pm.power(pm.WIFI, 0)关闭。
pm.power(pm.WIFI, 0)本质上是控制GPIO23输出低。
6.2 Air780Exx系列模组
带GNSS定位的型号——比如Air780EGH、Air780EGG、Air780EGP,GPIO23模组内部皆有使用,默认输出高。
外部需要更改其状态时,需注意如下事项:
- Air780EGP和Air780EGG这两个型号,内置G-Sensor后,必然会暂用系统的资源,比如G-Sensor的供电控制,比如G-Sensor判断振动后的中断输入,比如I2C1的占用等;
- 对于Air780EGP和Air780EGG这两个型号,I2C1内部挂载了G-Sensor,如果还需要在模组外部挂载其它外设时,比如摄像头,此时务必要保持GPIO23为默认的输出高状态,不可将GPIO23改为输出低的状态,否则会影响该I2C1总线的正常初始化;
- 另外,Air780EGH内部用于GNSS芯片的后备供电,以便星历保持,在需要时热启动;Air780EGP和Air780EGG除给GNSS芯片后备供电外,还给G-Sensor供电;将GPIO23设置为输入可以进一步降低功耗,代价是关闭了G-Sensor震动唤醒和GNSS备电不再支持热启动两个功能,大家根据自己的实际场景进行选择和设置。
以下是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 振动时的中断输入,外部不可再用。 |
6.3 其他型号
其它型号GPIO23没做处理,也没有根据是否启用SIM2做GPIO23强制输出高的设置,需要自己手动设置。
审核编辑 黄宇
-
物联网
+关注
关注
2950文章
48110浏览量
418164 -
低功耗
+关注
关注
12文章
3998浏览量
106848
发布评论请先 登录
物联网低功耗设计:Vref 伪电源的核心特性与避坑指南
评论