跳转至

对外电源,VDD_EXT

1、功能说明;

  • VDD_EXT,是模组主芯片内部的一个LDO,其主要作用是为模组大部分IO(或者叫做GPIO)提供电源;

  • VDD_EXT,是模组主芯片内部的一个LDO,但并不是唯一一个LDO,也并不是模组所有的IO都由VDD_EXT负责供电;

  • 大家可以看到和可以使用的模组IO,共有内部的三个LDO负责供电,一个是VDD_EXT,一个是LDO_AON,一个是LDO_1.8V,其中,LDO_AON和LDO_1.8V仅供内部使用,未在模组管脚引出;

  • VDD_EXT、LDO_AON、LDO_1.8V分别负责哪些IO?二者有什么区别?见下表;

  • VDD_EXT、LDO_AON、LDO_1.8V都是上电后自动开启,也都无法软件自定义关闭,不同的是:

a. LDO_1.8V,开机后一直保持1.8V,不可更改电压数值大小;

b. LDO_AON,开机后一直开启,低功耗模式pm.WORK_MODE,1 和 PSM+模式pm.WORK_MODE,3 不关闭,因此,其电压域下的IO,包括AGPIO、AGPIOWU、WAKEUP和Reset,在 低功耗模式pm.WORK_MODE,1 和 PSM+模式pm.WORK_MODE,3 下都可以保持工作;

LDO_AON的详细状态,如下表所示;

LDO_AON 电压可调 输出状态
常规模式pm.WORK_MODE,0 完全开启1.8V/2.8V/3.3V 1)上电开机后自动开启,初始电压为1.8V,之后调整至模组定义的IO默认电平,比如3.3V;如需自定义调整,可通过pm.ioVol()配置;
2)电流输出上限10mA;
3)开机期间始终保持开启;
4)仅模组内部使用;
低功耗模式 pm.WORK_MODE,1 完全开启1.8V/2.8V/3.3V 1)上电开机后自动开启,初始电压为1.8V,之后调整至模组定义的IO默认电平,比如3.3V;如需自定义调整,可通过pm.ioVol()配置;
2)电流输出上限10mA;
3)开机期间始终保持开启;
4)仅模组内部使用;
PSM+模式 pm.WORK_MODE,3 完全开启1.8V/2.8V/3.3V 1)上电开机后自动开启,初始电压为1.8V,之后调整至模组定义的IO默认电平,比如3.3V;如需自定义调整,可通过pm.ioVol()配置;
2)电流输出上限10mA;
3)开机期间始终保持开启;
4)仅模组内部使用;

c. VDD_EXT,开机后的状态比较复杂,如下表所示:

VDD_EXT 电压可调 输出状态
常规模式pm.WORK_MODE,0 完全开启1.8V/2.8V/3.3V 1)上电开机后自动开启,初始电压为1.8V,之后调整至模组定义的IO默认电平,比如3.3V;如需自定义调整,可通过pm.ioVol()配置;
2)电流输出上限200mA;
低功耗模式 pm.WORK_MODE,1 间歇性输出1.8V/2.8V/3.3V 3)低功耗模式pm.WORK_MODE,1 状态下间歇性输出,频率和与通信协议要求的时间间隔相同,通常为0.64S/1.28S/2.56S中的一个;
PSM+模式 pm.WORK_MODE,3 完全关闭 4)PSM+模式(pm.WORK_MODE,3)下完全掉电;

VDD_EXT,由于在 低功耗模式 pm.WORK_MODE,1 下状态为间线性输出,既不是完全打开,也不是完全关闭,因此,其电压域下的IO,GPIO0-19和GPOIO29-38,在低功耗模式 pm.WORK_MODE,1 下也会跟VDD_EXT一样,随着系统间歇性唤醒与基站交互而频繁产生高脉冲(重点是无法保持高电平或低电平),间歇性唤醒频率和与通信协议要求的时间间隔相同,通常为0.64S/1.28S/2.56S中的一个;

d. VDD_EXT和LDO_AON都是通过函数 pm.ioVol() 设置输出电压,且 pm.ioVol() 对二者同时进行修改,所以大家看到的模组的所有IO,包括VDD_EXT电压域和LDO_AON电压域,电平都是同时修改且保持一致;

3、VDD_EXT详细参数;

VDD_EXT Min Typical Max Units 对应的LuatOS API 函数
1.71 1.8 1.89 V pm.ioVol(pm.IOVOL_ALL_GPIO, 1800)
2.66 2.8 2.94 V pm.ioVol(pm.IOVOL_ALL_GPIO, 2800)
3.135 3.3 3.465 V pm.ioVol(pm.IOVOL_ALL_GPIO, 3300)

3、特别注意事项;

  • 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 下可被唤醒); 如下图所示,如果VREF使用VDD_EXT,那么低功耗模式pm.WORK_MODE,1 下模组的UART1_RX频繁的高低电平变化就会将模组唤醒,进而导致模组退出低功耗模式而功耗无法降低;
  • 需要特别指出的是,如果你的硬件需要在休眠状态下(低功耗模式pm.WORK_MODE,1 和 PSM+模式pm.WORK_MODE,3)也可以稳定输出的电源,请根据需要选择外置的DCDC或者LDO;

4、VDD_EXT相关LuatOS API;

  • VDD_EXT相关LuatOS API,请看pm库:52 pm - 合宙模组资料中心
  • 配置IO电平,其实就是配置给IO供电的LDO,包括VDD_EXT和LDO_AON; 相应的,配置VDD_EXT,就可以通过配置IO电平来实现;
  • pm.ioVol(id, val)

功能

配置模块所有 IO 引脚的高电平电压

注意事项

可配置 IO 电平, 范围 1650 ~ 2000,2650~3400 , 单位毫伏, 步进 50mv,可以根据外围电路需求配置;

实际应用中,经常配置的三个经典电压值为 1.8V/2.8V/3.3V;

合宙支持二次开发的模组,绝大多数默认都为 3.3V,例外是:

Air8000 系列模组,全系只支持 3.3V,不支持其它电平;

Air780EHV,IO 电平固定为 3.3V;相对应的,Air780EHV-1.8V,IO 电平固定为 1.8V;

参数

id

含义说明:需要配置高电平电压的对象;
数据类型:number
取值范围:0
注意事项:对象id仅有pm.IOVOL_ALL_GPIO,如命名含义,指配置所有GPIO的高电压电平,调用该接口时模块会以该接口配置的高电压电平调整,无视固件的默认配置和硬件100IO_Volt_Set的拉高和拉低配置
参数示例:--如下方所示,第一个参数为**pm.IOVOL_ALL_GPIO**,所有GPIO高电平输出1.8V;
      pm.ioVol(pm.IOVOL_ALL_GPIO, 1800)

val

含义说明:需要配置对象的电压值;
数据类型:number
取值范围:1650 ~ 20002650~3400 , 单位毫伏, 步进50mv
注意事项:模块会有1.8V和3.3V默认高电平电压的版本,也可调用该接口手动调整,以外围电路要求为主;
参数示例:--如下方所示,第二个参数为**3300**,所有GPIO高电平输出3.3V;
       pm.ioVol(pm.IOVOL_ALL_GPIO, 3300)

返回值

local result = pm.ioVol(id, val)

有一个返回值 result

result

含义说明:判断高电平电压调整是否正确执行;
数据类型:boolean
取值范围:成功时返回true,失败时返回false
注意事项:注意电压变化前后的外部电阻匹配;
参数示例:--如下方所示,第二个参数为3300,模块所有IO的高电平电压配置为为3.3V;
       --result返回true则模块电压转为3.3V;
       local result = pm.ioVol(pm.IOVOL_ALL_GPIO, 3300)

示例

pm.ioVol(pm.IOVOL_ALL_GPIO, 3300)    -- 所有GPIO高电平配置为3.3V
pm.ioVol(pm.IOVOL_ALL_GPIO, 1800)    -- 所有GPIO高电平配置为1.8V