打印

搞懂这三类GPIO,硬件设计不用愁

[复制链接]
30|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
合宙LuatOS|  楼主 | 2025-1-10 16:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 合宙LuatOS 于 2025-1-10 16:34 编辑

本文所介绍的GPIO设计指导,都是针对Air780E用于LuatOS开发方式时的一些注意事项,AT指令开发版本不支持GPIO操作。

在接下来的表格中,也将详细介绍WAKEUP管脚的注意事项。
一、GPIO复用表
对于GPIO功能复用,请参考如下表格(可通过下方链接下载最新版)。


▼ GPIO复用表 ▼
二、GPIO特性
Air780E的GPIO口根据不同的特性,可以分为三种类型:

普通IO
AGPIO
Wakeup IO

不同特性的GPIO,其驱动能力以及在低功耗模式/PSM+模式下的表现区别比较大,在使用这些特性的GPIO时尤其要注意;
AGPIO也常被写作为:AONGPIO、AON_GPIO,以下均以AGPIO的写法进行描述。

1. 普通IOAir780E大部分管脚为普通GPIO(上图GPIO复用表格中灰色底色的IO);
Air780E系统为了在休眠模式下有极致的低功耗性能,会在模组进入休眠/深休眠模式时,关闭GPIO供电(VDD_EXT),因此会导致所有以VDD_EXT为电源域的GPIO会进入下电状态。
在使用普通GPIO时,要尤其注意在休眠状态下GPIO的掉电状态对控制外设造成的误动作风险。

▼ 普通IO相关特性 ▼

电压域:VDD_EXT(1.8/3.3V可配置)
输入输出:可以配置
上下拉:内部可配置
输入中断:
上下边沿触发/双边沿触发/高低电平触发(休眠后无法响应中断)
休眠电平保持:不可保持
休眠唤醒:不可唤醒模组
驱动能力:单个普通GPIO驱动能力<=10mA
2. AGPIO

AGPIO管脚为休眠可保持管脚(GPIO复用表格中绿色底色IO管脚);
这类管脚电源域为长保持的LDO_AONIO电源(为内部电源,模组外部不可测量),这类电源在模组低功耗模式/PSM+下,仍然能够保持供电,因此AGPIO管脚在休眠状态下能够保持电平。
AGPIO管脚可以用于休眠状态下仍然需要保持工作状态的外设。

▼ AGPIO相关特性 ▼电压域:LDO_AONIO(1.8/3.3V)
输入输出:可以配置
上下拉:内部可配置
输入中断:
上下边沿触发/双边沿触发/高低电平触发(休眠后无法响应中断)
休眠电平保持:可保持
休眠唤醒:不可唤醒模组
驱动能力:
AGPIOWU0/1/3(MAIN_DTR):30μA;
AGPIO3~8:5mA(所有AGPIO总共驱动电流不能超过5mA)。

3. Wakeup IO

Air780E模组包含6个特殊管脚:
WAKEUP0~WAKEUP5
此类型IO为中断唤醒管脚,能够在模组休眠状态下响应外部中断从而使模组退出休眠状态,因此这类IO管脚在休眠状态下也能保持供电。
注意:Wakeup IO仅支持输入,不能配置为输出,且固定电平不可配置。

▼ Wakeup IO相关特性 ▼电压域:LDO_AON(2V,不可配置)
输入输出:仅输入
上下拉:内部可配置
输入中断:上下边沿触发/双边沿触发/高低电平触发
休眠电平保持:可保持
休眠唤醒:支持
驱动能力:30μA
三、GPIO应用注意事项
1. 普通GPIO以及相应的电压域VDD_EXT,在休眠时会输出频繁百ms级别的高脉冲,极易导致连接的外设误动作。
原因解析:
Air780E的休眠特性,VDD_EXT在休眠状态下会关闭,但是Air780E系统在休眠的整个时期内并不是一直保持稳定休眠状态,需要不定时唤醒起来与4G网络交互以保持网络连接,因此VDD_EXT会随着模组唤醒而打开。而大部分普通GPIO默认是I&PU状态,就会被VDD_EXT拉高,导致输出高脉冲。

设计建议:
在一些需要休眠状态下正常工作的外设的控制(比如LED控制)不建议使用普通GPIO,可以使用AGPIO。
由于AGPIO数量有限,在必须用普通GPIO的情况下,可以在普通GPIO上做外接10K电阻下拉(如下图R23),可以大幅减小休眠时输出的高脉冲幅值,使得减小到外设的高电平判别门限以下,也可以避免误动作的情况,但是相应的在某些情况下,会增加功耗,请根据实际情况酌情做出选择。
2. Wakeup IO类型的GPIO不要用VDD_EXT或者普通GPIO上拉,会导致系统无法进入休眠。
原因解析:
Air780E的休眠特性使得普通GPIO管脚和VDD_EXT会在休眠状态下输出高脉冲,会使得Wakeup IO收到中断而导致系统被唤醒,无法进入休眠模式。

设计建议:使用内部的上下拉。

3. Wakeup IO类型的GPIO不要直接连接主控MCU的IO管脚,会导致电平不一致而影响系统稳定性。
原因解析:
Wakeup IO管脚电平是2V左右,这个与大多数MCU的IO电平不匹配,而且Wakeup IO的供电为内部的LDO_AON,而这个供电会给系统启动相关的部分供电,比如reset管脚,因此Wakeup IO上由于电平不匹配而导致的漏洞,有可能会影响系统稳定性。

设计建议:
使用二极管或者三极管来隔离(如下图)。

今天的内容就分享到这里了~

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

12

帖子

0

粉丝