开漏输出和推挽输出

开漏输出(Open-Drain)推挽输出(Push-pull) 是两种常见的数字信号输出模式,它们用于控制电流流动的方式,不仅应用于 GPIO 引脚,也广泛应用于其他电子电路中,比如总线通信、驱动电路等。

1. 推挽输出(Push-pull Output)

推挽输出,简单的说,就是想输出高电平,就输出高电平,想输出低电平就输出低电平。
推挽输出 是最常见的输出方式,其原理是通过两个晶体管(一个是 NPN,一个是 PNP)来控制信号的输出。其工作原理是:

  • 高电平:当需要输出高电平时,PNP 晶体管导通,NPN 晶体管截止,输出端与 Vcc(高电平)连接。
  • 低电平:当需要输出低电平时,NPN 晶体管导通,PNP 晶体管截止,输出端与地(GND,低电平)连接。
    在这里插入图片描述
工作原理图
          Vcc
           |
          [PNP]
           |----- Output
           |
          [NPN]
           |
          GND
  • 输出高电平时:PNP 晶体管导通,NPN 晶体管截止,电流从 Vcc 通过 PNP 晶体管流到输出端。
  • 输出低电平时:NPN 晶体管导通,PNP 晶体管截止,电流从输出端流到地。
特点:
  • 输出高电平时:通过 PNP 晶体管将输出引脚拉到 Vcc 电压。
  • 输出低电平时:通过 NPN 晶体管将输出引脚拉到地(0V)。
  • 优点:推挽输出具有更强的驱动能力,可以提供较大的电流,因此适用于驱动负载如 LED、继电器、较大的电流设备等。
应用:

推挽输出通常用于需要驱动外部负载的场合,如控制 LED、马达、继电器等。

2. 开漏输出(Open-Drain Output)

开漏输出是没有能力输出高电平驱动负载的,我们可以看看开漏输出的电路就知道了。

在这里插入图片描述

如上图,开漏输出就是输出端的C集是开路的,没有接恒流源,如果直接接负载,完全就没有驱动能力。

所以,开漏输出接负载的电路我们会这样设计
在这里插入图片描述

开漏输出 是指输出端仅通过一个晶体管(通常是 NPN 晶体管)连接到地。当需要输出高电平时,输出引脚处于 开路状态,并不连接到电源,只能通过外部上拉电阻来实现高电平。只有当需要输出低电平时,NPN 晶体管导通,输出端接地。
在这里插入图片描述

工作原理图
          Vcc
           |
           R   (上拉电阻)
           |
           |---- Output
           |
          [NPN]
           |
          GND
  • 输出低电平时:NPN 晶体管导通,输出端直接连接到地(GND)。
  • 输出高电平时:NPN 晶体管截止,输出端通过上拉电阻连接到 Vcc。
特点:
  • 输出高电平时:输出端处于开路状态,电压由外部上拉电阻决定。没有驱动能力,必须通过外部电路来实现。
  • 输出低电平时:通过晶体管导通将输出端拉低。
  • 优点:开漏输出可以与多个设备共享一个总线,这对于总线通信非常有用,例如 I2C、1-Wire 协议中。
  • 缺点:不能直接驱动高电平,必须依赖上拉电阻。
应用:

开漏输出广泛应用于以下场景:

  • I2C 总线:I2C 是一种常见的开漏总线,所有的设备共享两条线路(SDA 和 SCL),每个设备都可以通过拉低总线来发送信号。
  • 1-Wire 总线:1-Wire 是另一种开漏总线协议,只有一个引脚用于数据传输和电源供电,外部的上拉电阻用于将数据线拉高。
  • 逻辑电平转换:在不同电压水平的电路中,开漏输出和上拉电阻可以帮助不同电平的设备进行通信。

比较:推挽输出与开漏输出

特性推挽输出(Push-pull)开漏输出(Open-drain)
工作原理两个晶体管(NPN 和 PNP)用于拉高和拉低电平只有一个 NPN 晶体管拉低电平,需外部上拉电阻
输出高电平时输出端连接到 Vcc输出端开路,通过上拉电阻拉高电平
输出低电平时输出端连接到 GND输出端连接到 GND
驱动能力可以提供较大的电流只能提供较小的电流,仅能拉低电平
应用场景驱动负载(如 LED、继电器等)总线通信(如 I2C、1-Wire)、逻辑电平转换等

总结

  • 推挽输出:有两个晶体管控制电流,可以同时输出高电平和低电平,适用于需要驱动较大负载的场合。
  • 开漏输出:仅使用一个晶体管,输出高电平时通过上拉电阻实现,适用于总线通信、多个设备共享一个信号线的场合。

参考:https://blog.csdn.net/weiqifa0/article/details/115191377

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

xwhking

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

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

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

打赏作者

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

抵扣说明:

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

余额充值