资讯详情

温故知新(四)——GPIO模式详解

目录

  • 1 什么是GPIO?
  • 2 GPIO的8工作模式
    • 2.1 输入模式
    • 2.2 输出模式
    • 2.3 输出模式比较
  • 3 文章参考


1 什么是GPIO?

GPIO全称是general purpose input output,即通用输入输出端口,可用作输入或输出。GPIO端口可以通过程序配置成输入或输出。 以STM以32为例,除了当时,大多数引脚都是引脚的GPIO除使用外,还可重复用作外设功能引脚(如串口)。一个引脚可以用作IO口,也可作为外设引脚的复用功能。

2 GPIO的8工作模式

STM32的GPIO工作模式可分为八类: 四种输入模式:浮空输入、上拉输入、下拉输入、模拟输入; 四种输出模式:开漏输出、开漏复用、推拉输出、推拉复用。

2.1 输入模式

四种输入模式相对容易理解。先看看。M3架构的IO口基本结构: 这里值得注意的是,M3架构的上下拉只能在输入端工作,M在4的架构中,将上下拉放在保护二极管的左侧GPIO输出也实现上下拉。 在这里插入图片描述 可以看出,结构中有一个上拉下拉的开关电路,即选择不同的开关来确定输入状态的电平状态。这种情况是上拉输入或下拉输入。

浮空输入可以理解为没有上拉或下拉,即电平状态完全由IO口的电平决定。

在模拟输入模式时,图中的肖特基触发器将关闭,因为模拟输入通常用于ADC因此,关闭触发器直接收集模拟量是正确的方法。

但值得注意的是,上电复位后,GPIO默认为输入浮空状态,部分特殊功能引脚为特定状态。


2.2 输出模式

从下图可以看出,设置为输出模式的结构图,其中步骤1、2、3是输出模式的写入和控制电路。在输出模式中,从4、5、6、7步可以看出,也可以通过读写寄存器读取电平状态。

复用输出功能与普通输出模式的区别在于,当CPU当使用一些内置的外设功能(片上的外设模块)时,决定输出状态的所谓寄存器发生了变化,例如PWM输出。 泄漏输出模式:输出端相当于三极管的集电极。为了获得高电平状态,需要上拉电阻。适用于电流驱动,其吸收电流的能力相对较强(一般 20ma 以内)。 泄漏电路具有以下特点: 1.利用外部电路的驱动能力降低 IC 内部驱动 IC 内部 MOSFET 导通时,驱动电流来自外部VCC 流经上拉电阻 ,再到MOSFET 到 GND。IC 内部只需要一个小的栅极驱动电流。 2.一般来说,泄漏是用来连接不同的电平设备,匹配电平,因为泄漏引脚不连接外部拉电阻,只能输出低电平,如果需要同时输出高电平功能,需要连接拉电阻,一个好的优点是通过改变拉电源电压,可以改变传输电平。例如,可以提供上拉电阻 TTL/CMOS 电平输出等。(上拉电阻的电阻决定了逻辑电平转换沿的速度 。电阻值越大,功耗越低,因此负载电阻的选择应考虑功耗和速度。) 3. 泄漏提供了灵活的输出模式,但也有其弱点,即上升边缘的延迟。由于上升边缘通过外部上拉无源电阻充电负载,当电阻选择小时时延迟小,但功耗大;相反,延迟大功耗小。因此,如果需要延迟,建议使用下降边缘输出。 4. 多个泄漏输出可以输出 Pin,连接到一条线。在不增加任何设备的情况下,通过上拉电阻形成逻辑关系。这也是 I2C,SMBus 等待总线判断总线占用状态的原理。补充:什么是线与?:在结点(线)上, 连接一个上拉电阻 VCC 或 VDD 和 n 个 NPN 或 NMOS 晶体管的集电极 C 或漏极 D, 晶体管的发射极 E 或源极 S 都接地线, 只要有一个晶体管饱和, 结点(线)被拉到地线电平上. 因为这些晶体管的基极注入电流(NPN)或者栅极加高电平(NMOS),晶体管饱和, 因此,这些基极或栅极对这个结点(线)的关系是非 NOR 逻辑. 假如在这个结点后面加一个反相器, 就是或 OR 逻辑。 事实上,它可以简单地理解为:当所有的引脚连接在一起时,如果有一个引脚输出作为逻辑 0、相当于接地,并联电路相当于被导线短路 0.只有高电平时,结果才是逻辑 1。

推拉输出模式:可输出高、低电平,连接数字设备;推拉结构一般是指两个三极管分别由两个互补信号控制,总是在一个三极管导通时的另一个截止日期。高低电平由 IC 低电源。 推挽电路是两个参数相同的三极管或 MOSFET,电路中存在推拉方式,负责正负波形放大任务半周。当电路工作时,两个对称的功率开关管每次只有一个导管,因此导管损耗小,效率高。输出不仅可以向负载灌注电流,还可以从负载中提取电流。推拉输出级不仅提高了电路的负载能力,而且提高了开关速度。 推挽式输出结构如下图:

如图所示,推拉放大器的输出级别有两个臂(两组放大元件)。当一个臂的电流增加时,另一个臂的电流减少,两者的状态轮流转换。就负载而言,似乎是一个臂在推,一个臂在拉,共同完成电流输出任务。当输出高电平时,即下载门输入高电平时,输出端的电流将是下级门通过本级电源 VT3 拉出。这样,平时输出高低电,VT3 一路和 VT5 一路交替工作,降低功耗,提高各管的承载能力。而且因为走哪条路,管道的导电阻都很小,所以 RC 常数小,转化速度快。因此,推拉输出级不仅提高了电路的负载能力,而且提高了开关速度。

2.3 输出模式比较

推拉输出:可输出强高低电平,连接数字设备 . 泄漏输出:只能输出强低电平,高电平必须通过外部电阻拉高。输出端相当于三极管的集电极,需要上拉电阻才能获得高电平状态。 适用于电流驱动,其吸收电流的能力相对较强(一般20ma以内)。

3 文章参考

正点原子:GPIO工作原理和配置 博客:GPIO推拉输出和开漏输出模式的区别

标签: 互补晶体管怎么匹配

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台