推挽输出&&开漏输出

33df06521b6a4ecbaf398571eb7b6c05.png

在学习STM32的时候,我发现了一个很值得研究学习的问题,下面,用我的理解来阐述一遍,这其中的原理。


首先请看电路图

97bc1dfe956a40fc9d057e6a88842251.png

在给GPIO配置输出的时候,其有两种工作模式可选,分别是推挽输出和开漏输出。

e437e2f2129a4c5baf47665a7d501644.png


在此之前先得了解mos管的工作原理,为了方便大家理解,我用通俗的语言来阐述

07ad29fdb0be467d998ccc2b9f1ab9d7.png

这是一个PMOS,他可以理解成一个低电平(逻辑0)开启的开关,图中的小圆点是非门的意思,也就给我们提示需要用一个低电平来导通这个pmos管

3fca844c5bc1442998892fcb3309c2ac.png

这是一个NMOS,他可以理解成一个高电平(逻辑1)开启的开关


在有了上面的认知,我们再来理解下面的问题

1、推挽输出

推挽输出的时候,是不需要上拉电阻的,其本身就有足够的驱动能力,但是其缺点是无法进行“线与”,一但进行了高低电平的“线与”, 就会发生短路的现象。

1.1分析其输出(用逻辑0和1来分析)

输入PMOSNMOS输出
0导通不导通1
1不导通导通0

推挽输出时,不管是输入0,还是1,都会有一个mos管是工作在导通状态。 

当输入0时,PMOS导通,那就把上面想成一个导线,NMOS不导通,那就想成电阻无穷大,根据节点电压,或者说分压原理,输出的那一段电压值,其实就是分在下面NMOS两端的电压,由于其阻止很大,因此分的也大,几乎是全部,也就是逻辑1了,

输入1时的情况也可以用我上面说的那种方法来理解,此处就不过多赘述了

1.2分析其不可“线与”

03ad675887464773a45c42abd6943e3a.png

这就是所谓的“线与”,就是把前一个的输出,直接接到后一个作为后一个的输入。而我上面画出的这种情况,也就是在最开始的时候输入一个0,其线与后就会反生如上图所示的短路(图中的叉叉表示不导通),所以我们说推挽输出,不可以“线与”。

2、开漏输出

所谓的开漏就是,没有VDD,也就是如下图所示的状态

6cf5361df2284873bbd282fb8635fb5d.png

由于上面不接VDD了,上面的PMOS也就不工作了,真正工作的只有下面的NMOS,原来的电路也就可以等效成下面这样,其与单个NMOS工作没什么差别。

48b38db6301240cd95ef52a6fffc02e0.png

输入NMOS状态输出
0不导通高阻态
1导通0

在其不导通的时候,nmos管相当于一个很大的电阻,也就是我们所说的高阻态;而在其导通的时候,就相当于直接接地了,所以就是逻辑0。

由于其不导通和导通的时候是高阻和0,所以其可以进行“线与”,就相当于多个电阻进行连接,并没有什么电源,也就不存在什么短路。

因此,为了提高其驱动能力,STM32的线路设计上在后面又给它加了个上拉电阻,也就是下面这个图,这也是为什么开漏输出需要上拉电阻的原因。

 ac57ffbceb0e4900823b9e3bd5754335.png

另外,使用开漏输出,还可以根据上拉电阻的阻值大小不同,控制输出电平的大小,其中原理就是一个很简单的分压原理, 也就是说其可以进行电压转换。

总结

推挽输出:不需要上拉电阻,不可“线与”,不可电平转换

开漏输出:需要上拉电阻,可以进行“线与”,可以电平转换

 

 

 

 

 

 

 

  • 25
    点赞
  • 181
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翔在天上飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值