Open Drain
开漏输出内部结构图
Open-Drain 开漏输出
从上图可以看出:它是使用 N 沟道 MOS 晶体管实现的,该晶体管在晶体管开启时将输出引脚拉至地,而在晶体管关闭时将其悬空。
开漏输出最常用于通信接口中,其中多个设备连接在同一条线上(例如 I2C、One-Wire 等)。开漏输出都需要使用上拉电阻。当连接到线路的设备的所有输出都处于 Hi-Z 状态时,线路被上拉驱动到默认逻辑 1 电平。任何设备都可以使用其开漏输出将线路拉至逻辑 0,并且所有设备都可以看到该电平。
开漏输出需要选择合适的上拉电阻,如果上拉电阻选择太大,电阻和总线电容产生了一个RC延时效应,造成上升沿变缓,有可能带来信号质量风险;如果上拉电阻选择太小,VDD灌入端口的电流将较大,这样会导致MOS管不完全导通,有饱和状态变成放大状态,这样端口输出的低电平值增大,如果灌入端口的电流过大,还有可能损坏端口。
Push pull
Push Pull 推挽输出
从上图可以看出:它是使用 PMOS 和 NMOS 晶体管的推挽输出实现的。
Push阶段:当连接到晶体管栅极的内部信号(见左图)设置为低逻辑电平(逻辑 0)时,PMOS 晶体管被激活,电流从 VDD 流经它到输出引脚。NMOS 晶体管处于非活动状态(开路)且不导通。
Pull阶段:当连接到晶体管栅极的内部信号设置为高逻辑电平(逻辑 1)时,NMOS 晶体管被激活(关闭)并且电流开始从输出引脚流过它到 GND。同时,PMOS 晶体管处于非活动状态(开路)并且不传导电流。
配置为推挽的输出引脚在大多数情况下可以动态重新配置为输入。这是通过关闭两个晶体管来实现的,从而在线路上实现高阻抗状态。然后可以从其他外部设备驱动该线路,并使用集成电路内部的专用逻辑进行感测。
总结:
1.一般来说,推挽输出比开漏输出具有更快的斜率,因此推挽输出传输速率的上限要比开漏输出高。
2.开漏输出一般需要加上拉电阻。
下期介绍开漏输出I2C上拉电阻的取值,感兴趣的多多关注,谢谢支持!
微信公众号同号:搬砖队长 文溪