当前位置:网站首页>硬件之OC、OD、推挽解释
硬件之OC、OD、推挽解释
2022-07-06 19:32:00 【ltqshs】
梳理清楚推挽、开漏、OC、OD
推挽输出
推挽输出(Push-Pull Output)是由两个MOS或者三极管受到互补控制信号的控制,两个管子始终处在一个导通另一个截止的状态,如图1所示:
图1 推挽输出结构
推挽输出的最大特点是可以真正的输出高电平和低电平,而且在两种电平下都具有驱动能力。
补充说明:
所谓的驱动能力,就是指输出电流的能力。对于驱动大负载(即负载内阻越小,负载越大)时,例如IO输出为5V,驱动的负载内阻为10ohm,于是根据欧姆定律可以正常情况下负载上的电流为0.5A(推算出功率为2.5W)。显然一般的IO不可能有这么大的驱动能力,也就是没有办法输出这么大的电流。于是造成的结果就是输出电压会被拉下来,达不到标称的5V。当然如果只是数字信号的传递,下一级的输入阻抗理论上最好是高阻,也就是只需要传电压,基本没有电流,也就没有功率,于是就不需要很大的驱动能力。
对于推挽输出,输出高、低电平时电流的流向如图2所示。所以相比于后面介绍的开漏输出,输出高电平时的驱动能力强很多。
图2 灌电流与拉电流
缺点
但推挽输出的一个缺点是,如果当两个推挽输出结构相连在一起,一个输出高电平,即上面的MOS导通,下面的MOS闭合时;同时另一个输出低电平,即上面的MOS闭合,下面的MOS导通时。电流会从第一个引脚的VCC通过上端MOS再经过第二个引脚的下端MOS直接流向GND。整个通路上电阻很小,会发生短路,进而可能造成端口的损害。这也是为什么推挽输出不能实现" 线与"的原因。
开漏输出
常说的与推挽输出相对的就是开漏输出(Open Drain Output),对于开漏输出和推挽输出的区别最普遍的说法就是开漏输出无法真正输出高电平,即高电平时没有驱动能力,需要借助外部上拉电阻完成对外驱动。关于上下拉电阻可以参考此文:通俗理解STM32中的上/下拉电阻。
下面就从内部结构和原理上说明为什么开漏输出输出高电平时没有驱动能力,以及进一步比较与推挽输出的区别。
首先需要介绍一些开漏输出(OD)和开集输出(OC)。这两种输出的原理和特性基本是类似的,区别如下:
开漏使用MOS管,其中的"漏"指的就是MOS管的漏极
开集使用三极管,其中的"集"指的就是三极管的集电极
这两者其实都是和推挽输出相对应的输出模式,由于使用MOS管的情况较多,很多时候就用"开漏输出"这个词代替了开漏输出和开集输出。
OC
介绍就先从开集输出开始,其原理电路结构如图3所示。
图3 OC
图3左边电路是开集(OC)输出最基本的电路,当输入为高电平时,NPN三极管导通,Output被拉到GND,输出为低电平;当输入为低电平时,NPN三极管闭合,Output相当于开路(输出高阻)。高电平时输出高阻(高阻、三态以及floating说的都是一个意思),此时对外没有任何的驱动能力。这就是开漏和开集输出最大的特点,如何利用该特点完成各种功能稍后介绍。这个电路虽然完成了开集输出的功能,但是会出现input为高,输出为低;input为低,输出为高的情况。
图3右边的电路中多使用了一个三极管完成了"反相"。当输入为高电平时,第一个三极管导通,此时第二个三极管的输入端会被拉到GND,于是第二个三极管闭合,输出高阻;当输入为低电平时,第一个三极管闭合,此时第二个三极管的输入端会被上拉电阻拉到高电平,于是第二个三极管导通,输出被拉到GND。这样,这个电路的输入与输出是同相的了。
OD
接下来介绍开漏输出的电路,如图4所示。原理与开集输出基本相同,只是将三极管换成了MOS而已。
图4 OD
特点及应用
接着说说开漏、开集输出的特点以及应用,由于两者相似,后文中若无特殊说明,则用开漏表示开漏和开集两种输出电路。
开漏输出最主要的特性就是高电平没有驱动能力,需要借助外部上拉电阻才能真正输出高电平,其电路如图5所示。
图5 OD门上拉
当MOS管闭合时,开漏输出电路输出高电平,且连接着负载时,电流流向是从外部电源,流经上拉电阻RPU,流进负载,最后进入GND。
开漏输出的这一特性一个明显的优势就是可以很方便的调节输出的电平,因为输出电平完全由上拉电阻连接的电源电平决定。所以在需要进行电平转换的地方,非常适合使用开漏输出。
开漏输出的这一特性另一个好处在于可以实现"线与"功能,所谓的"线与"指的是多个信号线直接连接在一起,只有当所有信号全部为高电平时,合在一起的总线为高电平;只要有任意一个或者多个信号为低电平,则总线为低电平。而推挽输出就不行,如果高电平和低电平连在一起,会出现电流倒灌,损坏器件。
推挽、开漏对比
关于推挽输出、开漏输出在STM32中的应用,请移步此文:STM32中GPIO工作原理详解。理清楚了推挽、开漏之后,可以更好的理解GPIO工作原理。
声明:版权归原作者所有,如有侵权请联系小编删除。参考原文1:《硬件电路设计之“OC/OD输出”》,参考原文2:《梳理清楚推挽、开漏、OC、OD》。
边栏推荐
- Qpushbutton- "function refinement"
- Metaforce force meta universe fossage 2.0 smart contract system development (source code deployment)
- The annual salary of general test is 15W, and the annual salary of test and development is 30w+. What is the difference between the two?
- Error: could not find a version that satisfies the requirement xxxxx (from versions: none) solutions
- Oauth2协议中如何对accessToken进行校验
- 实施MES管理系统时,哪些管理点是需要注意的
- Google Earth Engine(GEE)——Landsat 全球土地调查 1975年数据集
- Electrical engineering and automation
- Left path cloud recursion + dynamic planning
- What are the characteristics of the operation and maintenance management system
猜你喜欢
Kysl Haikang camera 8247 H9 ISAPI test
慧通编程入门课程 - 2A闯关
How to design interface test cases? Teach you a few tips to draft easily
AWS learning notes (I)
Redis入门完整教程:问题定位与优化
运维管理系统有哪些特色
Have fun | latest progress of "spacecraft program" activities
Oauth2协议中如何对accessToken进行校验
Electrical engineering and automation
Huitong programming introductory course - 2A breakthrough
随机推荐
Unity custom webgl packaging template
Unity webgl adaptive web page size
Redis入门完整教程:客户端管理
换个姿势做运维!GOPS 2022 · 深圳站精彩内容抢先看!
AWS learning notes (I)
PSINS中19维组合导航模块sinsgps详解(初始赋值部分)
MES管理系统的应用和好处有哪些
慧通编程入门课程 - 2A闯关
Es6中Promise的使用
uniapp的表单验证
How to write test cases for test coupons?
Django数据库(SQlite)基本入门使用教程
Oauth2协议中如何对accessToken进行校验
测试优惠券要怎么写测试用例?
A complete tutorial for getting started with redis: problem location and optimization
Summary of basic debugging steps of S120 driver
Redis introduction complete tutorial: client case analysis
LeetCode 77:组合
简单冒泡排序
widerperson数据集转化为YOLO格式