欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MCU通用输入输出端口(GPIO)输出模式

程序员文章站 2022-04-01 18:33:17
...

对于常规MCU,通用输入输出(GPIO)是其最基本、最常用的功能,用于实现最基本的数字量输入和输出。

信号一般为:

  • 以3.3VDC为高电平的LTTL电平
  • 以5.0VDC为高电平的TTL电平。

一般情况下,GPIO能够实现两种输出模式:

  • 开漏输出
  • 推挽输出。

其中最常用的是推挽输出模式。

原理图如下:

MCU通用输入输出端口(GPIO)输出模式

开漏输出与推挽输出在外部链接上的区别

开漏输出需要外接一个上拉电阻才能得到输出电压,否则就不会有电压输出,而推挽输出可以直接得到输出信号。

下面举例一些需要使用开漏输出的情况:

  • 在使用IIC(TWI)总线进行信号传输的时候,由于协议的设计,必须使用开漏模式来输出信号,这样可以避免总线上多个设备传输信号产生冲突。
  • 在LTTL(3.3VDC)电平电路中,当需要输出TTL(5VDC)电平的时候,由于5VDC电压高于LTTL电平所在电路的电源电压,所以即便是LTTL电平电路中的I\O引脚可以承受TTL电平,但LTTL电平电路也无法提供足够高的电压来输出TTL电平信号。此时可以利用外部上拉电阻将输出引脚连接到5.0VDC电源上,使这些引脚向以TTL电平工作的芯片传输数据。
推挽输出电路

来看一个典型的推挽输出电路:
MCU通用输入输出端口(GPIO)输出模式

上面的三极管是NPN型三极管,下面的三极管是PNP型三极管,注意控制端、输入端和输出端。

当Vin电压为V+时,上面的N型三极管控制端有电流输入,Q3导通,于是电流从上往下通过,提供电流给负载。

MCU通用输入输出端口(GPIO)输出模式

经过上面的N型三极管提供电流给负载(Rload),这就叫「推」。

当Vin电压为V-时,下面的三极管有电流流出,Q4导通,有电流从上往下流过。
MCU通用输入输出端口(GPIO)输出模式

经过下面的P型三极管提供电流给负载(Rload),这就叫「挽」。

以上便是推挽(push-pull)电路。

一些总结
  • 1) 推挽输出能够输出高或者低,而开漏输出只能输出低,或者关闭输出,因此开漏输出总是要配一个上拉电阻使用。

  • 2) 开漏输出的上拉电阻不能太小,太小的话,当开漏输出的下管导通时,电源到地的电压在电阻上会造成很大的功耗,因此这个电阻阻值通常在10k以上,这样开漏输出在从输出低电平切换到高电平时,速度很慢。

  • 3) 推挽输出任意时刻的输出要么是高,要么是低,所以不能将多个输出短接;而开漏输出可以将多个输出短接,共用一个上拉,此时这些开漏输出的驱动其实是或非的关系。

  • 4) 推挽输出输出高时,其电压等于推挽电路的电源,通常为一个定值,而开漏输出的高取决于上拉电阻接的电压,不取决于前级电压,所以经常用来做电平转换,用低电压逻辑驱动高电压逻辑。


    感谢一直关注着禾灮成长进步的朋友们。你们的信任、支持和鼓励,鞭策着我们一路走到了今天。

    感谢所有的合作伙伴,我们相互促进,共同见证了彼此的成长。

    感谢所有曾经在禾灮彼此倚靠、相互鼓励、携手同心、砥砺同行的兄弟姐妹。这里承载了我们的青春与热血。

                禾灮,感谢有你。

    未来,我们将一如既往,砥砺前行。

                                        禾灮·小楊
                                       2018.08.07

相关标签: GPIO