STM32F1系列GPIO引脚的八种工作模式

目录

摘要

GPIO八种工作模式

1、输入浮空

2、输入上拉

3、输入下拉

4、模拟输入

5、开漏输出

6、推挽输出

7、开漏式复用功能

8、推挽式复用功能


摘要

1为高电平,0为低电平

输入浮空 空闲不确定,输入高电平读出为1,输入低电平读出为0
输入上拉 空闲时读出为1,输入高电平读出1,输入低电平读出0
输入下拉 空闲时读出为0,输入高电平读出1,输入高电平读出0
模拟输入 用于ADC、DAC、 MCO这类操作模拟信号的外设
开漏输出 输出值为0,那么IO引脚的输出状态为低电平;输出数据寄存器的值为1,IO引脚的输出状态为高阻态。
推挽输出 输出数据寄存器的值为0,IO引脚的输出状态为低电平;输出数据寄存器的值为1,IO引脚的输出状态为高电平。
开漏式复用功能 引脚的状态是由对应的外设控制,类开漏输出
推挽式复用功能 引脚的状态是由对应的外设控制,类推挽输出

GPIO八种工作模式

下面我们通过GPIO的 基本结构图来分别进行详细分析,先看看总的框图,如图所示。

STM32F1系列GPIO引脚的八种工作模式_第1张图片

如上图所示,可以看到右边只有 I/ O引脚,这个引脚,其他部分都是 GPIO 的 内部结构:

① 保护二极管

保护二极管共有两个,用于保护引脚外部过高或过低的电压输入。当引脚输入电压高于 VDD 时,上面的二极管导通,当引脚输入电压低于 VSS 时,下面的二极管导通,从而使输入 芯片内部的电压处于比较稳定的值。虽然有二极管的保护,但这样的保护却很有限,大电压大 电流的接入很容易烧坏芯片。所以在实际的设计中我们要考虑设计引脚的保护电路。

②上拉、下拉电阻

它们阻值大概在 30 ~ 50K 欧之间,可以通过上、下两个对应的开关控制,这两个开关由寄 存器控制。当引脚外部的器件没有干扰引脚的电压时,即没有外部的上、下拉电压,引脚的电 平由引脚内部上、下拉决定,开启内部上拉电阻工作,引脚电平为高,开启内部下拉电阻工作, 则引脚电平为低。同样,如果内部上、下拉电阻都不开启,这种情况就是我们所说的浮空模式。 浮空模式下,引脚的电平是不可确定的。引脚的电平可以由外部的上、下拉电平决定。需要注意的是,STM32的内部上拉是一种“弱上拉”,这样的上拉电流很弱,如果有要求大电流还 是得外部上拉。

③密特触发器

对于标准施密特触发器,当输入电压高于正向阈值电压,输出为高;当输入电压低于负向 阈值电压,输出为低;当输入在正负向阈值电压之间,输出不改变,也就是说输出由高电准位. 翻转为低电准位,或是由低电准位翻转为高电准位对应的阈值电压是不同的。只有当输入电压 发生足够的变化时,输出才会变化,因此将这种元件命名为触发器。这种双阈值动作被称为迟 滞现象,表明施密特触发器有记忆性。从本质_上来说,施密特触发器是一种双稳态多谐振荡器。 施密特触发器可作为波形整形电路,能将模拟信号波形整形为数字电路能够处理的方波波 形,而且由于施密特触发器具有滞回特性,所以可用于抗干扰,以及在闭回路正回授/负回授 配置中用于实现多谐振荡器。 下面看看比较器跟施密特触发器的作用的比较,就清楚的知道施密特触发器对外部输入信 号具有一定抗干扰能力,如图所示。

STM32F1系列GPIO引脚的八种工作模式_第2张图片

④ P-MOS管和N-MOS管

这个结构控制GPIO的开漏输出和推挽输出两种模式。开漏输出输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行。

推挽输出:这两只对称的MOS管每次只有一 只导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载拉电流(既可以输出高电平也可以输出低电平)。推拉式 输出既能提高电路的负载能力,又能提高开关速度。

上面我们对GPIO的基本结构图中的关键器件做了介绍,下面分别介绍GPIO八种工作模 式对应结构图的工作情况。

1、输入浮空

输入浮空模式:上拉/下拉电阻为断开状态,施密特触发器打开,输出被禁止。输入浮空模式下,IO口的电平完全是由外部电路决定(输入1读出为1,输入0读出为0)。如果IO引脚没有连接其他的设备,那么检测其输入电平是不确定的。该模式可以用于按键检测等情景。

STM32F1系列GPIO引脚的八种工作模式_第3张图片

2、输入上拉

上拉电阻导通,施密特触发器打开,输出被禁止。在需要外部上拉电阻的时候,可以使用内部上拉电阻(空闲时读出为1,输入1读出1,输入0读出0),这样可以节省一个外部电阻,但是内部上拉电阻的阻值较大, 所以只是“弱上拉”,不适合做电流型驱动。

STM32F1系列GPIO引脚的八种工作模式_第4张图片

3、输入下拉

下拉电阻导通,施密特触发器打开,输出被禁止。在需要外部下拉电阻 的时候,可以使用内部下拉电阻(空闲时为读出为0,输入1读出1,输入0读出0),这样可以节省一个外部电阻,但是内部下拉电阻的阻值较大, 所以不适合做电流型驱动。

STM32F1系列GPIO引脚的八种工作模式_第5张图片

4、模拟输入

上下拉电阻断开,施密特触发器关闭,双MOS管也关闭。其他外设可以通过模拟通道输入输出。该模式下需要用到芯片内部的模拟电路单元单元,用于ADC、DAC、 MCO这类操作模拟信号的外设

STM32F1系列GPIO引脚的八种工作模式_第6张图片

5、开漏输出

STM32的开漏输出模式是数字电路输出的一种,从结果上看它只能输出低电平Vss或者高阻态,常用于IIC通讯(IIC_SDA)或其它需要进行电平转换的场景。根据 《STM32F10xxx参考手册_V10(中文版).pdf》第108页关于“GPIO输出配置”的描述,我 们可以知道开漏模式下,IO是这样工作的:

⚫ P-MOS被“输出控制”控制在截止状态,因此IO的状态取决于N-MOS的导通状况;

⚫ 只有N-MOS还受控制于输出寄存器,“输出控制”对输入信号进行了逻辑非的操作;

⚫ 施密特触发器是工作的,即可以输入,且上下拉电阻都断开了,可以看成浮空输入;

根据参考手册的描述,同时为了方便大家理解,我们在“输出控制”部分做了等效处理, 如图所示。图中写入输出数据寄存器①的值怎么对应到IO引脚的输出状态② 是我们最关心的。

根据参考手册的描述:开漏输出模式下P-MOS一直在截止状态,即不导通,所以P-MOS 管的栅极相当于一直接VDD。如果输出数据寄存器①的值为0,那么IO引脚的输出状态②为 低电平,这是我们需要的控制逻辑,怎么做到的呢?是这样的,输出数据寄存器的逻辑0经 过“输出控制”的取反操作后,输出逻辑1到N-MOS管的栅极,这时N-MOS管就会导 通,使得IO引脚连接到VSS,即输出低电平。如果输出数据寄存器的值为1,经过“输出 控制”的取反操作后,输出逻辑0到N-MOS管的栅极,这时N-MOS管就会截止。又因 为P-MOS管是一直截止的,使得IO引脚呈现高阻态,即不输出低电平,也不输出高电平。 因此要IO 引脚输出高电平就必须接上拉电阻。 又由于F1系列的开漏输出模式下,内部 的上下拉电阻不可用,所以只能通过接芯片外部上拉电阻的方式,实现开漏输出模式下输 出高电平。如果芯片外部不接上拉电阻,那么开漏输出模式下,IO无法输出高电平。

在开漏输出模式下,施密特触发器是工作的,所以IO口引脚的电平状态会被采集到输入数据寄存器中,如果对输入数据寄存器进行读访问可以得到IO口的状态。也就是说开漏输出 模式下,我们可以读取IO引脚状态。

STM32F1系列GPIO引脚的八种工作模式_第7张图片

6、推挽输出

STM32的推挽输出模式,从结果上看它会输出低电平VSS或者高电平 VDD。推挽输出跟开漏输出不同的是,推挽输出模式P-MOS管和N-MOS管都用上。同样 地,我们根据参考手册推挽模式的输出描述,可以得到等效原理图,如图所示。 根据手册描述可以把“输出控制”简单地等效为一个非门。

如果输出数据寄存器①的值为0,经过“输出控制”取反操作后,输出逻辑1到P MOS 管的栅极,这时P-MOS管就会截止,同时也会输出逻辑1到N-MOS管的栅极,这时N-MOS 管就会导通,使得IO引脚接到 VSS,即输出低电平。

如果输出数据寄存器的值为1 ,经过“输出控制”取反操作后,输出逻辑0到N MOS 管的栅极,这时N-MOS管就会截止,同时也会输出逻辑0到P-MOS管的栅极,这 时P-MOS管就会导通,使得IO引脚接到VDD,即输出高电平

由上述可知,推挽输出模式下,P-MOS管和N-MOS管同一时间只能有一个管是导通 的。当IO引脚在做高低电平切换时,两个管子轮流导通,一个负责灌电流,一个负责拉 电流,使其负载能力和开关速度都有较大的提高。

另外在推挽输出模式下,施密特触发器也是打开的,我们可以读取 IO 口的电平状态。

由于推挽输出模式下输出高电平时,是直接连接VDD,所以驱动能力较强,可以做电 流型驱动,驱动电流最大可达25mA,但是芯片的总电流有限,所以并不建议这样用,最 好还是使用芯片外部的电源。

STM32F1系列GPIO引脚的八种工作模式_第8张图片

7、开漏式复用功能

 一个IO口可以是通用的IO口功能,还可以是其它外设的特殊功能引 脚,这就是IO口的复用功能,如图所示。一个IO口可以是多个外设的功能引脚,我们需要选择其中一个外设的功能引脚。当选择复用功能时,引脚的状态是由对应的外设控制, 而不是输出数据寄存器。除了复用功能外,其它的结构分析请参考开漏输出模式。

另外在开漏式复用功能模式下,施密特触发器也是打开的,我们可以通过输入数据寄存器 读取IO口的电平状态,同时外设也可以读取IO口的信息。

STM32F1系列GPIO引脚的八种工作模式_第9张图片

8、推挽式复用功能

复用功能介绍请查看开漏式复用功能,结构分析请参考推挽输出模式。

STM32F1系列GPIO引脚的八种工作模式_第10张图片

你可能感兴趣的:(STM32F1系列#,hal库,stm32,嵌入式硬件,单片机)