IO口为漏极开路

最近做一个PIC的项目,做到最后才发现IO口不够用了,还发现有个IO口还不受控制,到处求救,仔细看看资料后才发现,原来这个IO口是漏极开路型的IO口。

   我们所熟悉的一般有这几种集电极开路,漏极开路,推挽,上拉电阻,弱上拉,三态门,准双向口。不过说道这个漏极开路型还真没用过。
  于是就查找了半天的资料,终于弄的大体明白,这里就来和大家一起说一下什么是漏极开路以及漏极开路的具体作用吧!

我们先来说说集电极开路输出的结构。集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为反相之用,使输入为“0”时,输出也为“0”)。对于图1,当左端的输入为“0”时,前面的三极管截止(即集电极c跟发射极e之间相当于断开),所以5v电源通过1k电阻加到右边的三极管上,右边的三极管导通(即相当于一个开关闭合);当左端的输入为“1”时,前面的三极管导通,而后面的三极管截止(相当于开关断开)。

我们将图1简化成图2的样子。图2中的开关受软件控制,“1”时断开,“0”时闭合。很明显可以看出,当开关闭合时,输出直接接地,所以输出电平为0。而当开关断开时,则输出端悬空了,即高阻态。这时电平状态未知,如果后面一个电阻负载(即使很轻的负载)到地,那么输出端的电平就被这个负载拉到低电平了,所以这个电路是不能输出高电平的。

再看图3,图3中那个1k的电阻即是上拉电阻。如果开关闭合,则有电流从1k电阻及开关上流过,但由于开关闭和时电阻为0(方便我们的讨论,实际情况中开关电阻不为0,另外对于三极管还存在饱和压降),所以在开关上的电压为0,即输出电平为0。如果开关断开,则由于开关电阻为无穷大(同上,不考虑实际中的漏电流),所以流过的电流为0,因此在1k电阻上的压降也为0,所以输出端的电压就是5v了,这样就能输出高电平了。但是这个输出的内阻是比较大的(即1kω),如果接一个电阻为r的负载,通过分压计算,就可以算得最后的输出电压为5*r/(r+1000)伏,即5/(1+1000/r)伏。所以,如果要达到一定的电压的话,r就不能太小。如果r真的太小,而导致输出电压不够的话,那我们只有通过减小那个1k的上拉电阻来增加驱动能力。但是,上拉电阻又不能取得太小,因为当开关闭合时,将产生电流,由于开关能流过的电流是有限的,因此限制了上拉电阻的取值,另外还需要考虑到,当输出低电平时,负载可能还会给提供一部分电流从开关流过,因此要综合这些电流考虑来选择合适的上拉电阻。

如果我们将一个读数据用的输入端接在输出端,这样就是一个io口了(51的io口就是这样的结构,其中p0口内部不带上拉,而其它三个口带内部上拉),当我们要使用输入功能时,只要将输出口设置为1即可,这样就相当于那个开关断开,而对于p0口来说,就是高阻态了。

对于漏极开路(od)输出,跟集电极开路输出是十分类似的。将上面的三极管换成场效应管即可。这样集电极就变成了漏极,oc就变成了od,原理分析是一样的。

另一种输出结构是推挽输出。推挽输出的结构就是把上面的上拉电阻也换成一个开关,当要输出高电平时,上面的开关通,下面的开关断;而要输出低电平时,则刚好相反。比起oc或者od来说,这样的推挽结构高、低电平驱动能力都很强。如果两个输出不同电平的输出口接在一起的话,就会产生很大的电流,有可能将输出口烧坏。而上面说的oc或od输出则不会有这样的情况,因为上拉电阻提供的电流比较小。如果是推挽输出的要设置为高阻态时,则两个开关必须同时断开(或者在输出口上使用一个传输门),这样可作为输入状态,avr单片机的一些io口就是这种结构。

---------------------------------------------------------------------------

单片机内部的逻辑经过内部的逻辑运算后需要输出到外面,外面的器件可能需要较大的电流才能推动,因此在单片机的输出端口必须有一个驱动电路。这种驱动电路有两种形式:

其中的一种是采用一只N型三极管(npn或n沟道),以npn三极管为例,就是e接地,b接内部的逻辑运算,c引出,b受内部驱动可以控制三极管是否导通但如果三极管的c极一直悬空,尽管b极上发生高低变化,c极上也不会有高低变化,因此在这种条件下必须在外部提供一个电阻,电阻的一端接c(引出脚)另一端接电源,这样当三极管的b有高电压是三极管导通,c电压为低,当b为低电压时三极管不通,c极在电阻的拉动下为高电压,这种驱动电路有个特点:低电压是三极管驱动的,高电压是电阻驱动的(上下不对称),三极管导通时的ec内阻很小,因此可以提供很大的电流,可以直接驱动led甚至继电器,但电阻的驱动是有限的,最大高电平输出电流=(vcc-Vh)/r;

另一种是互补推挽输出,采用2只晶体管,一只在上一只在下,上面的一只是n型,下面为p型(以三极管为例),两只管子的连接为:npn(上)的c连vcc,pnp(下)的c接地,两只管子的ee,bb相连,其中ee作为输出(引出脚),bb接内部逻辑,这个电路通常用于功率放大点路的末级(音响),当bb接高电压时npn管导通输出高电压,由于三极管的ec电阻很小,因此输出的高电压有很强的驱动能力,当bb接低电压时npn截至,pnp导通,由于三极管的ec电阻很小因此输出的低电压有很强的驱动能力,简单的例子,9013导通时ec电阻不到10欧,以Vh=2.5v,vcc=5v计算,高电平输出电流最大=250MA,短路电流500ma,这个计算同时告诉我们采用推挽输出时一定要小心千万不要出现外部电路短路的可能,否则肯定烧毁芯片,特别是外部驱动三极管时别忘了在三极管的基极加限流电阻。推挽输出电路的形式很多,有些单片机上下都采用n型管,但内部逻辑提供互补输出,以上的说明仅仅为了说明推挽的原理,为了更深的理解可以参考功率放大电路。

---------------------------------------------------------------------------

集电极开路门(集电极开路OC或源极开路OD)

漏极开路输出相当于集电极开路输出。漏极开路是对mos管而言,集电极开路是对三极型管而言。一般用于线或、线与、电流驱动,匹配电平。

开漏形式的电路有以下几个特点:

1.利用外部电路的驱动能力,减少IC内部的驱动, 或驱动比芯片电源电压高的负载。

2.可以将多个开漏输出的Pin,连接到一条线上。通过一只上拉电阻,在不增加任何器件的情况下,形成“与逻辑”关系。这也是I2C,SMBus等总线判断总线占用状态的原理。

3.由于漏级开路,所以后级电路必须接一上拉电阻,上拉电阻的电源电压就可以决定输出电平。这样就可以进行任意电平的转换了。

4.源极开路提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。因为上升沿是通过外接上拉无源电阻对负载充电,所以当电阻选择小时延时就小,但功耗大;反之延时大功耗小。所以如果对延时有要求,则建议用下降沿输出。

---------------------------------------------------------------------------

上拉电阻很大,提供的驱动电流很小,叫弱上拉;反之叫强上拉。

(0)

相关推荐

  • UC头条:电子电路基础 (13)——数字电路基础

    一.逻辑电路的概念及含义 逻辑一词具有条理清晰见解的含义,它是建筑在给一系列组合电路输入电子信号(ON.OFF),然后读取其输出这一过程上的.逻辑电路是最基本的电子电路,是所有数字电路的基础.电脑能够 ...

  • NPN和PNP两种型号三极管的使用和连接方法

    描述 分享这篇文章总结下关于NPN和PNP两种型号三极管的使用和连接方法. 在单片机应用电路中三极管主要的作用就是开关作用. PNP与NPN两种三极管使用方法 首先来说一下NPN型,这种型号的三极管在 ...

  • PNP与NPN两种三极管使用方法

                             单片机与嵌入式 1周前 分享这篇文章总结下关于NPN和PNP两种型号三极管的使用和连接方法. 在单片机应用电路中三极管主要的作用就是开关作用. PNP ...

  • 对通用输入输出GPIO的深入理解

    http://bbs.21ic.com/blog-804662-97083.html GPIO的各种模式     GPIO管脚可以被配置为多种工作模式,其中有3种比较常用:高阻输入.推挽输出.开漏输出 ...

  • 集电极开路输出和漏极开路输出

    一.集电极开路输出 1.集电极开路输出原理 在电路中常会遇到漏极开路(Open Drain)和集电极开路(Open Collector)两种情形.漏极开路电路概念中提到的"漏"是指 ...

  • 一文理解推挽输出&漏极开路输出(OD)&集电极开路输出(OC)

    因为自己之前一直不理解推挽输出.漏极开路输出.集电极开路输出这三个概念到底是什么意思.今天终于静下心来好好学习了一遍,于是便写下本文详细解释一下这三个概念,希望能对你有所帮助,文中大部分内容均为引用. ...

  • 单片机IO口推挽、开漏输出、准双向IO详解

    加入论坛的方式:在公众号对话框内,输入数字"1",即可进入论坛,无需注册,就是这么简单.诚邀您的加入. 在学单片机和选用逻辑器件的时候我们常别人说这款芯片是推挽输出驱动能力强,这个 ...

  • 用3个IO口控制6个LED灯,怎么做到的?查理复用

    ▲ 本文要分析的电路 事情是这样开始的. 买了个电动牙刷,几十块钱那种: 收到的实物长这样: 牙刷手柄上有1个按键和6个LED灯: 拆开看看电路板: 可以看出,电路板上用的单片机,只有8个脚,却要控制 ...

  • STM32的IO口的八种模式

    STM32的IO口可以由软件配置成如下8种模式: 1.输入浮空 2.输入上拉 3.输入下拉 4.模拟输入 5.开漏输出 6.推挽输出 7.推挽式复用功能 8.开漏复用功能 每组IO口包含7个寄存器. ...

  • 如何使用单片机定时器来控制一个物理按钮的IO口的通断啊?

    我用51单片机做了一个温度监测报警装置,使用手动按钮SEND来手动发送当前的温度值,我加了一个定时器来控制这个SEND按钮,达到5秒发送一个短信的效果,但是加进去之后没有实现这个效果,各位大佬帮忙看一 ...

  • 5个IO口实现25个按键的扫描,他做到了!堪称一绝!

    面包板社区 今天 在做项目(工程)的时候,我们经常要用到比较多的按键,而且IO资源紧张,于是我们就想方设法地在别的模块中节省IO口,好不容易挤出一两个IO口,却发现仍然不够用,实在没办法了就添加一个I ...

  • 爷爷留下的治外伤溃疡久不收口方(极效,七天必愈)!

    真实案例:1994年,我哥在学校跟一同学打闹,不小心撞到了小腿胫腓骨部位.当时症状只是感觉痛,并没在意,一星期后,被撞部位开始溃疡,爹妈即带他去看医生.打了很多消炎针,吃了很多消炎药都无济于事,而且伤 ...

  • 【电路设计笔记】7.光耦隔离IO口的实现

    文/Edward 前两天,开始我们乐创客第一块开发板的设计,当我在进行电路设计时,我发现一些电路设计软件的使用,一些电路设计的方案,一些创新的想法,一些元器件的选型这些都是可以记录成文,并且分享出来一 ...