1为高电平,0为低电平
GPIO八种工作模式下面我们通过GPIO的 基本结构图来分别进行详细分析,先看看总的框图,如图所示。
如上图所示,可以看到右边只有 I/ O引脚,这个引脚,其他部分都是 GPIO 的 内部结构:
① 保护二极管
保护二极管共有两个,用于保护引脚外部过高或过低的电压输入。当引脚输入电压高于 VDD 时,上面的二极管导通,当引脚输入电压低于 VSS 时,下面的二极管导通,从而使输入 芯片内部的电压处于比较稳定的值。虽然有二极管的保护,但这样的保护却很有限,大电压大 电流的接入很容易烧坏芯片。所以在实际的设计中我们要考虑设计引脚的保护电路。
②上拉、下拉电阻
它们阻值大概在 30 ~ 50K 欧之间,可以通过上、下两个对应的开关控制,这两个开关由寄 存器控制。当引脚外部的器件没有干扰引脚的电压时,即没有外部的上、下拉电压,引脚的电 平由引脚内部上、下拉决定,开启内部上拉电阻工作,引脚电平为高,开启内部下拉电阻工作, 则引脚电平为低。同样,如果内部上、下拉电阻都不开启,这种情况就是我们所说的浮空模式。 浮空模式下,引脚的电平是不可确定的。引脚的电平可以由外部的上、下拉电平决定。需要注意的是,STM32的内部上拉是一种“弱上拉”,这样的上拉电流很弱,如果有要求大电流还 是得外部上拉。
③密特触发器
对于标准施密特触发器,当输入电压高于正向阈值电压,输出为高;当输入电压低于负向 阈值电压,输出为低;当输入在正负向阈值电压之间,输出不改变,也就是说输出由高电准位. 翻转为低电准位,或是由低电准位翻转为高电准位对应的阈值电压是不同的。只有当输入电压 发生足够的变化时,输出才会变化,因此将这种元件命名为触发器。这种双阈值动作被称为迟 滞现象,表明施密特触发器有**性。从本质_上来说,施密特触发器是一种双稳态多谐振荡器。 施密特触发器可作为波形整形电路,能将模拟信号波形整形为数字电路能够处理的方波波 形,而且由于施密特触发器具有滞回特性,所以可用于抗干扰,以及在闭回路正回授/负回授 配置中用于实现多谐振荡器。 下面看看比较器跟施密特触发器的作用的比较,就清楚的知道施密特触发器对外部输入信 号具有一定抗干扰能力,如图所示。
④ P-MOS管和N-MOS管
这个结构控制GPIO的开漏输出和推挽输出两种模式。开漏输出:输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行。
推挽输出:这两只对称的MOS管每次只有一 只导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载拉电流(既可以输出高电平也可以输出低电平)。推拉式 输出既能提高电路的负载能力,又能提高开关速度。
上面我们对GPIO的基本结构图中的关键器件做了介绍,下面分别介绍GPIO八种工作模 式对应结构图的工作情况。
|