
芯片集成电路
随着智能时代的到来,各种人工智能应用如:车载导航系统、可穿戴设备、智能家居等令人眼花缭乱,而在这当中,微控制器的应用范围也越来越广泛。微控制器俗称单片机,又称微处理器。它是将微型计算机的主要部件集成在一个芯片上的单片机。那么在学习选择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口.
如果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对应管脚:将该管脚配置为模拟输入
如果端口被配置为复用输出功能,如果外设没有被激活,那么它的输出将是未定义的。
请登录后发表评论
注册
社交帐号登录