一下各IO口的类型与应用详解,你知道吗?

芯片集成电路

随着智能时代的到来,各种人工智能应用如:车载导航系统、可穿戴设备、智能家居等令人眼花缭乱,而在这当中,微控制器的应用范围也越来越广泛。微控制器俗称单片机,又称微处理器。它是将微型计算机的主要部件集成在一个芯片上的单片机。那么在学习选择MCU等逻辑器件的时候,我们常说这个芯片推挽输出驱动能力强,而且这个管脚是开漏输出,需要加一个上拉电阻。有时我会感到困惑。今天,我将详细解释每个IO端口的类型和应用。

IO口分为GPIO口和专用IO口。

GPIO的八种工作模式详解:浮空输入、上拉输入、下拉输入、模拟输入、开漏输出、推挽输出、开漏复用输出。

1、浮动输入_IN_FLOATING

浮动输入

顾名思义,悬浮就是漂浮在空中。也就是说,没有什么能把他拉下来,也没有什么能把它拉上来。

特点:电压的不确定性,可能是0V,可能是VCC,或者介于两者之间的某个值(很可能)。

浮空一般用于ADC输入,可用于KEY识别,RX,可以减少上拉和下拉电阻对结果的影响。

2、带上拉输入_IPU

带上拉输入

上拉就是把电位拉高,比如拉到Vcc。上拉就是通过一个电阻将不确定的信号钳位在高电平,这个电阻还起到限流的作用!

3、带下拉输入_IPD

下拉输入

特点是将电压拉低至GND。类似于引体向上的原理。

对于要添加的上拉或下拉电阻:

1.作为单片机的输入,假设我们在IO口上直接接一个按钮到地(或电源)。

因为按钮被按下,所以引脚在未按下时处于浮动状态。微控制器很难检测到按钮是否被按下。

所以人为地一一拉起(或下拉)。判断IO输入电平未按下时的状态

2.可以提高芯片的抗干扰性能

3.单片机IO口用于输出时,如果不接上拉电阻,只能提供灌电流。无法输出电流来驱动外部设备。这时候还需要考虑上拉电阻。这样IO输出就可以高了

4、模拟输入_AIN

模拟输入

应用ADC模拟输入,或以低功耗省电

信号从左侧编号为 1 的端口进入,从右侧编号为 2 的一端直接进入 MCU 的 AD 模块。

5、开漏输出_OUT_OD

开漏输出

上图是GPIO开漏输出模式的工作原理

CPU通过1号端的“位设置/清除寄存器”或“输出数据寄存器”写入数据后,数据位将通过2号输出控制电路传送到4号I/O口.

图片[1]-一下各IO口的类型与应用详解,你知道吗?-老王博客

如果CPU写的是逻辑“1”,则3号N-MOS管处于关闭状态,I/O口的电平由外接上拉电阻决定。

如果CPU写逻辑“0”有关触发器寄存器的诗,则3号N-MOS管处于导通状态有关触发器寄存器的诗,I/O口的电平被N-MOS管号拉至“地”的零电位3.

上图,施密特触发器开启,表示CPU可以在“输入数据寄存器”的另一端随时监控I/O口的状态。虚拟I/O口双向通讯:如果CPU输出逻辑“1”,由于3号N-MOS管处于关闭状态,I/O口的电平将完全由外部电路决定,因此,CPU 可以处于“输入”状态。数据寄存器”从外部电路读取信号,而不是自己输出逻辑“1”。

在 GPIO 端口的输出模式下,有 3 种输出速度(2MHz、10MHz 和 50MHz)。这个速度是指GPIO端口驱动电路的响应速度,而不是输出信号的速度。输出信号的速度与程序有关(芯片内部。在I/O口的输出部分,布置了多个响应速度不同的输出电路,用户可以根据自己的需要选择合适的驱动电路) .

通过选择速度来选择不同的输出驱动模块,以达到最佳的噪声控制和降低功耗。

高频驱动电路,噪声大当我们的项目不需要比较高的输出频率时,请选择低频驱动电路,这对提高系统的EMI性能非常有利。

当然,如果我们的项目需要输出较高频率的信号,而选择了较低频率的驱动模块,很可能会得到比较失真的输出信号

6、推挽输出_OUT_PP

推挽输出

GPIO的推挽输出模式是基于开漏输出模式。在“输出控制电路”之后,增加了一个P-MOS管。

当CPU输出逻辑“1”时,3号P-MOS管导通,下面的N-MOS管截止,达到输出高电平的目的

当CPU输出逻辑“0”时,3号P-MOS管关断,下面的N-MOS管导通,达到输出低电平的目的

在这种模式下,CPU仍然可以从“输入数据寄存器”中读取IO口电压变化的信号。

优点:它可以灌入或灌入电流。

缺点:在一条总线上,只能有一个推挽输出设备。

7、开漏复用输出_AF_OD

开漏复用输出

GPIO的开漏复用输出方式与开漏输出方式基本相同。

不同之处在于编号为2的输入源不同,它连接到复用功能的输出端

此时,“输出数据寄存器”被输出通道断开。

从上图我们也可以看出,CPU也可以从“输入数据寄存器”中读取外部IO口变化的电平信号。

8、推挽复用输出_AF_PP

推挽复用输出

最后介绍一下GPIO推挽复用输出方式的工作原理

2号“输出控制电路”输入连接到复用功能的输出端

此时,“输出数据寄存器”与输出通道断开,片内外设的输出信号直接与“输出控制电路”的输入端相连。

我们将GPIO配置为复用输出功能后,如果相应的外设模块没有被激活,那么此时IO口的输出将是未定义的。

其他部分原理与上述模式相同,包括读取“输入数据寄存器”的方式。

最后重点讲解MCU外设输入输出的配置;

1、外设对应管脚输出:根据外围电路的配置,可以选择对应管脚为复用功能的push-through输出或复用功能的开漏输出。

2、外设对应的管脚为输入:根据外围电路的配置,对应的管脚可以选择为浮空输入或上拉输入或下拉输入。

3、ADC对应管脚:将该管脚配置为模拟输入

如果端口被配置为复用输出功能,如果外设没有被激活,那么它的输出将是未定义的。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论