首页 > 其他分享 >想要硬件设计不用愁?首先要搞懂这三类GPIO!

想要硬件设计不用愁?首先要搞懂这三类GPIO!

时间:2024-11-08 08:51:21浏览次数:1  
标签:模组 休眠 IO GPIO 搞懂 管脚 AGPIO 这三类

合宙低功耗4G模组经典型号Air780E,支持两种软件开发方式:

一种是传统的AT指令;
一种是基于模组做Open开发。

传统AT指令的开发方式,合宙模组与行业内其它模组品牌在软件上区别不大,在硬件功耗上更有优势;

模组Open开发,合宙采用的是LuatOS方式,相对C-SDK入门更简单,开发更方便,开发时间上也更快。

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

 

Air780E模组共支持GPIO0~GPIO31合计32个GPIO和WAKEUP0~5合计6个唤醒管脚,其中:

32个GPIO口本身有多重复用功能,大家需要根据实际应用进行选择配置;

6个WAKEUP管脚中,部分也可以配置为GPIO功能,在接下来的表格中,也将详细介绍WAKEUP管脚的注意事项;

32个GPIO中,又可分为普通GPIO和AGPIO,在接下来的表格中,会详细介绍这两种GPIO的定义和区别。

 

一、GPIO复用表

对于GPIO功能复用,请参考如下表格。

 

▼ GPIO复用表 ▼

图片

 

二、GPIO特性

Air780E的GPIO口根据不同的特性,可以分为三种类型:

  • 普通IO

  • Wakeup IO

  • AGPIO

不同特性的GPIO,其驱动能力以及在低功耗模式/PSM+模式下的表现区别比较大,在使用这些特性的GPIO时尤其要注意;

AGPIO也常被写作为:AONGPIO、AON_GPIO,以下均以AGPIO的写法进行描述。

1. 普通IO

Air780E大部分管脚为普通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上由于电平不匹配而导致的漏洞,有可能会影响系统稳定性。

设计建议:

使用二极管或者三极管来隔离(如下图)。

图片

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

标签:模组,休眠,IO,GPIO,搞懂,管脚,AGPIO,这三类
From: https://www.cnblogs.com/luatos/p/18534348

相关文章

  • 一篇帮你搞懂ECharts图表构建
    目录一、引入 主要功能和应用场景:完全版本:二、一个实例 1.大框架2.设置大标题3.设置提示标签4.设置每个柱形数据的背景颜色5.设置柱形数据背景边框6.设置图例小角标7.拖拽手柄8.设置X轴9.设置Y轴10.设置数据11.设置边框完整版本:一、引入 ‌ECharts‌是......
  • SCC.369 Working with GPIO Moodle
    SCC.369Coursework1:WorkingwithGPIO Moodlesubmission16:00Fridayweek4;weighting33%ofmodule.AimHavingfamiliarizedyourselfwiththeCdevelopmentenvironmentandthebasicprocessofwritingtoregisterstocontroltheGPIOpins,inthiscour......
  • ESP32学习笔记2(GPIO的数字输入输出功能)
    1.普通5mm直径LED参数测定实验以上为普通5mm直径LED,手册建议持续工作电流为20mA以内。以下,采用学生电源(带控压限流功能)通过限流电阻170欧给各色LED供电,通过缓慢加压测流和观察LED亮度的方法,确定电流、压降与亮度关系,实测该批次LED颜色与压降大致如下:颜色1mA状态与压降......
  • 透明无感知加密你了解吗?一篇文章,快速搞懂透明加密!
    数据已经成为企业最宝贵的资产之一。然而,随着数据泄露事件的频发,如何确保数据的安全性成为了企业面临的一大挑战。今天,我们就来聊聊一种高效、便捷且用户无感知的数据加密技术——透明无感知加密。什么是透明无感知加密?透明无感知加密,又称无感加密或自动加密技术,是一......
  • C++ 的“百变魔法”:搞懂基本数据类型和变量
    编程世界里,数据就像材料,而基本数据类型就决定了这些材料能做什么。每种数据类型都有它自己的“特长”,我们可以用它们来处理不同的信息。今天,我们就来看看C++里最常见的几种基本数据类型:int,char,float,double,bool,以及如何用变量来存储这些数据。什么是数据类型?简单......
  • 彻底搞懂接口和抽象类
    接口接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。publicinterfaceShape{voiddraw();//画图的方法,没有具体实现}可以看出里面只有孤孤单单的方法声明而已,......
  • 别再被多线程搞晕了!一篇文章轻松搞懂 Linux 多线程同步!
    前言大家有没有遇到过,代码跑着跑着,线程突然抢资源抢疯了?其实,这都是“多线程同步”在作怪。多线程同步是个老生常谈的话题,可每次真正要处理时还是让人头疼。这篇文章,带你从头到尾掌握Linux的多线程同步,把概念讲成大白话,让你看了不再迷糊,还能拿出来装一装逼!不管是“锁”、“信号......
  • 一文搞懂:AI网关这个新东西是什么意思?有没有开源免费的选择?
    AI网关是什么意思?有什么用?AI网关是企业应用与内外部大模型之间的桥梁,它位于企业应用与内外部大模型的调用交汇点。AI网关的主要功能是将应用请求通过集中管理模块转发给1内部自建模型、2外部大模型服务提供商,甚至3海外模型提供商。通过这种方式,AI网关在企业内管......
  • 一文搞懂4种用户权限模型
    大家好,我是汤师爷~什么是权限?权限,简单来说,是系统中控制用户行为的一套规则和机制,用来限制每个用户在系统中可以访问的页面、功能和查看的信息。权限系统通过设定不同的用户角色,并将权限分配给这些角色,来控制用户在系统中可使用的功能和可查看的信息。这是企业进行权限管理的有......
  • stm32教程:GPIO口及流水灯实验
    早上好啊,大佬们,想必在你电脑硬盘的某处放着一个stm32的工程模板吧!~然后今天,就和大家一起写出第一个小项目——流水灯咱们先来讲讲GPIO口吧。关于GPIO的那点事儿什么是GPIOGPIO(英语:General-purposeinput/output),通用型之输入输出的简称,功能类似8051的P0—P3,其接脚可以供......