"); //-->
在硬件设计中,GPIO的多面手本色令人惊叹——既能做基础IO,又能化身AGPIO处理复杂协议,还能作为Wakeup IO实现低功耗唤醒。本文揭秘其核心应用场景。
本文特别分享Air780EPM的GPIO使用注意事项及硬件设计要点,产品手册、原理图、应用示例等资料持续更新开放。
Air780EPM模组共支持38个GPIO和3个WAKEUP唤醒管脚。
38个GPIO口本身有多重复用功能,大家需要根据实际应用进行选择配置;
38个GPIO中,又可分为普通GPIO和AGPIO;
3个WAKEUP管脚,用于低功耗模式/PSM+模式下的休眠唤醒。
可视化GPIO复用初始化配置工具——LuatIO,配置简单便捷。
GPIO功能复用表:https://docs.openluat.com/air780epm/luatos/hardware/design/gpio/
LuatIO工具使用教程:https://docs.openluat.com/air780epm/common/luatio/
Air780EPM的GPIO口根据不同的特性,可以分为三种类型:
普通IO
AGPIO
Wakeup IO
不同特性的GPIO,其驱动能力以及在低功耗模式/PSM+模式下的表现区别比较大,在使用这些特性的GPIO时尤其要注意。
AGPIO也常被写作为:AONGPIO、AON_GPIO,下文均以AGPIO的写法进行描述。
2.1 普通IO
Air780EPM大部分管脚为普通GPIO(GPIO复用表格中灰色底色的IO);
Air780EPM系统为了在休眠模式下有极致的低功耗性能,会在模组进入休眠/深休眠模式时,关闭GPIO供电(VDD_EXT),因此会导致所有以VDD_EXT为电源域的GPIO会进入下电状态。
在使用普通GPIO时,要尤其注意在休眠状态下GPIO的掉电状态对控制外设造成的误动作风险。
AGPIO管脚为休眠可保持管脚(GPIO复用表格中绿色底色IO管脚)。
这类管脚电源域为长保持的LDO_AONIO电源(为内部电源,模组外部不可测量),这类电源在模组低功耗模式/PSM+下,仍然能够保持供电,因此AGPIO管脚在休眠状态下能够保持电平。
AGPIO管脚可以用于休眠状态下,仍然需要保持工作状态的外设。
Air780EPM包含3个特殊管脚,分别为:
WAKEUP0、VBUS、USIM_DET。
此类型IO为中断唤醒管脚,能够在模块休眠状态下响应外部中断从而使模块退出休眠状态,因此这类IO管脚在休眠状态下也能保持供电。
注意:Wakeup IO仅支持输入,不能配置为输出,且固定电平不可配置。
原因解析:
Air780EPM的休眠特性,VDD_EXT在休眠状态下会关闭,但是Air780EPM系统在休眠的整个时期内并不是一直保持稳定休眠状态,需要不定时唤醒起来与4G网络交互以保持网络连接。
因此VDD_EXT会随着模组唤醒而打开。而大部分普通GPIO默认是I&PU状态,就会被VDD_EXT拉高,导致输出高脉冲。
设计建议:
在一些需要休眠状态下正常工作的外设的控制(比如LED控制)不建议使用普通GPIO,可以使用AGPIO。
由于AGPIO数量有限,在必须用普通GPIO的情况下,可以在普通GPIO上做外接10K电阻下拉(如下图R23):
可以大幅减小休眠时输出的高脉冲幅值,使得减小到外设的高电平判别门限以下,也可以避免误动作的情况。但是相应的在某些情况下,会增加功耗,请根据实际情况酌情做出选择。
原因解析:
Air780EPM的休眠特性使得普通GPIO管脚和VDD_EXT会在休眠状态下输出高脉冲,会使得WakeupIO收到中断而导致系统被唤醒,无法进入休眠模式。
设计建议:使用内部的上下拉。
原因解析:
Wakeup IO管脚电平是2V左右,这个与大多数MCU的IO电平不匹配,而且Wakeup IO的供电为内部的LDO_AON,而这个供电会给系统启动相关的部分供电,比如reset管脚,因此Wakeup IO上由于电平不匹配而导致的漏洞,有可能会影响系统稳定性。
设计建议:
使用二极管或者三极管来隔离(如下图)。
今天的内容就分享到这里了~
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。