




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、open-drain与push-pull】gpio的功能,简单说就是可以根据自己的需要去配置为输入或输出。但是在配置gpio管脚的时候,常会见到两种模式:开漏(open-drain,漏极开路)和推挽(push-pull)。对此两种模式,有何区别和联系,下面整理了一些资料,来详细解释一下:图表1 push-pull对比open-drainpush-pull推挽输出open-drain开漏输出原理输出的器件是指输出脚内部集成有一对互补的mosfet,当q1导通、q2截止时输出高电平;而当q1截止导通、q2导通时输出低电平开漏电路就是指以mosfet的漏极为输出的电路。指内部输出和地之间有个n沟道的
2、mosfet(q1),这些器件可以用于电平转换的应用。输出电压由vcc决定。vcc可以大于输入高电平电压vcc(uptranslate)也可以低于输入高电平电压vcc(downtranslate)。某老外的更加透彻的解释push-pull输出,实际上内部是用了两个晶体管(transistor),此处分别称为top transistor和bottom transistor。通过开关对应的晶体管,输出对应的电平。top transistor打开(bottom transistor关闭),输出为高电平;bottom transistor打开(top transistor关闭),输出低电平。push-
3、pull即能够漏电流(sink current),又可以集电流(source current)。其也许有,也许没有另外一个状态:高阻抗(high impedance)状态。除非push-pull需要支持额外的高阻抗状态,否则不需要额外的上拉电阻。open-drain输出,则是比push-pull少了个top transistor,只有那个bottom transistor。(就像push-pull中的那样)当bottom transistor关闭,则输出为高电平。此处没法输出高电平,想要输出高电平,必须外部再接一个上拉电阻(pull-up resistor)。open-drain只能够漏电流(
4、sink current),如果想要集电流(source current),则需要加一个上拉电阻。常见的gpio的模式可以配置为open-drain或push-pull,具体实现上,常为通过配置对应的寄存器的某些位来配置为open-drain或是push-pull。当我们通过cpu去设置那些gpio的配置寄存器的某位(bit)的时候,其gpio硬件ic内部的实现是,会去打开或关闭对应的top transistor。相应地,如果设置为了open-d模式的话,是需要上拉电阻才能实现,也能够输出高电平的。因此,如果硬件内部(internal)本身包含了对应的上拉电阻的话,此时会去关闭或打开对应的上拉
5、电阻。如果gpio硬件ic内部没有对应的上拉电阻的话,那么你的硬件电路中,必须自己提供对应的外部(external)的上拉电阻。而push-pull输出的优势是速度快,因为线路(line)是以两种方式驱动的。而带了上拉电阻的线路,即使以最快的速度去提升电压,最快也要一个常量的rc的时间。其中r是电阻,c是寄生电容(parasitic capacitance),包括了pin脚的电容和板子的电容。但是,push-pull相对的缺点是往往需要消耗更多的电流,即功耗相对大。而open-drain所消耗的电流相对较小,由电阻r所限制,而r不能太小,因为当输出为低电平的时候,需要sink更低的transi
6、stor,这意味着更高的功耗。(此段原文:because the lower transistor has to sink that current when the output is low; that means higher power consumption.)而open-drain的好处之一是,允许你cshort(?)多个open-drain的电路,公用一个上拉电阻,此种做法称为wired-or连接,此时可以通过拉低任何一个io的pin脚使得输出为低电平。为了输出高电平,则所有的都输出高电平。此种逻辑,就是“线与”的功能,可以不需要额外的门(gate)电路来实现此部分逻辑。原理图图
7、表2 push-pull原理图图表3 open-drain原理图图表4 open-drain“线与”功能优点(1)可以吸电流,也可以贯电流;(2)和开漏输出相比,pushpull的高低电平由ic的电源低定,不能简单的做逻辑操作等。(1)对于各种电压节点间的电平转换非常有用,可以用于各种电压节点的up-translate和downtranslate转换(2)可以将多个开漏输出的pin脚,连接到一条线上,形成“与逻辑”关系,即“线与”功能,任意一个变低后,开漏线上的逻辑就为0了。这也是i2c,smbus等总线判断总线占用状态的原理。(3)利用 外部电路的驱动能力,减少ic内部的驱动。当ic内部mo
8、sfet导通时,驱动电流是从外部的vcc流经r pull-up ,mosfet到gnd。ic内部仅需很下的栅极驱动电流。(4)可以利用改变上拉电源的电压,改变传输电平:图表5 open-drain输出电平的原理ic的逻辑电平由电源vcc1决定,而输出高电平则由vcc2决定。这样我们就可以用低电平逻辑控制输出高电平逻辑了。缺点一条总线上只能有一个push-pull输出的器件;开漏pin不连接外部的上拉电阻,则只能输出低电平。当输出电平为低时,n沟道三极管是导通的,这样在vcc和gnd之间有一个持续的电流流过上拉电阻r和三极管q1。这会影响整个系统的功耗。采用较大值的上拉电阻可以减小电流。但是,但是大的阻值会使输出信号的上升时间变慢。即上拉电阻r pull-up的阻值 决定了逻辑电平转换的沿的速度。阻值越大,速度越低功耗越小。反之亦然。特点在cmos电路里面应该叫cmos输出更合适,因为在cmos里面的pushpull输出能力不可能做得双极那么大。输出能力看ic内部输出极n管p管的面积。pushpull是现在cmos电路里面用得最多的输出级设计方式。【open-drain和push-pull的总结】对于gpio的模式的设置,在不考虑是否需要额外的上拉电阻的情况下,是设置为open-drain还是push-pull,说到底,还是个权衡的问题:如果你想要电平转换速度快
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 核心素养导向下体育教学巧用“启慧三单”的设计与实施
- 实习工作应急预案
- “立德树人”视域下中小学体育课程思政的实践研究
- 水利合同管理制度
- 营销初级考试试题及答案
- 2025奢侈品抵押合同
- 车辆出租经营合同(标准版)
- 2025年文学常识初中真题及答案
- 码头起吊豆粕合同(标准版)
- 乌市应急响应预案
- 2025湖北武汉市市直机关遴选公务员111人笔试参考题库附答案解析
- 学堂在线 新闻摄影 期末考试答案
- 超声引导下的臂丛神经阻滞
- 生物质颗粒燃料生产建设项目质量管理方案
- 警校生未来职业规划
- 水闸安全鉴定投标方案(技术标)
- 肠易激综合征中西医结合诊疗共识意见
- 《国歌法》、《国旗法》主题班会
- 河南省软科学计划项目申请书
- TCSCMA 0004-2023 出口工程机械二手设备 评估服务规范
- 人卫八卫生学社会心理因素与健康
评论
0/150
提交评论