推挽输出和开漏输出的区别与特点
优点
Push-Pull推挽输出
- 可以吸电流,也可以贯电流;
- 导通损耗低,传输速率高;
Open-Drain开漏输出
- IC内部不需要提供驱动电流,减少了单片机自身损耗;
- 可以将多个开漏输出的Pin脚,连接到一条线上,形成“与逻辑”关系,即“线与”功能,任意一个变低后,开漏线上的逻辑就为0了。这也是I2C,SMBus等总线判断总线占用状态的原理;
- 开漏模式可以用于电平信号标准的转换,在开漏模式中外部上拉电阻的外加电源电压是不确定的,例如可以加5V电压也可以加3.3V电压,而且STM32单片机端口是可以承受外部最高5V电压的,开漏结构也可以灌入较大的电流所以可以间接实现TTL电平系列或COMS电平系列的转换;
- 开漏的输出结构如果使用外加上拉电阻的电路模式,可以通过控制电阻的大小来控制信号上升沿和下降沿的时间和速度,电阻较小时,上升沿时间短,速度快,电阻较大时,上升沿时间长,速度缓
缺点
Push-Pull推挽输出
- 一条总线上只能有一个push-pull输出的器件;
- IC输出功耗大;
Open-Drain开漏输出
- 开漏Pin不连接外部的上拉电阻,则只能输出低电平。当输出电平为低时,N沟道三极管是导通的,这样在VCC和GND之间有一个持续的电流流过上拉电阻R和三极管Q1。这会影响整个系统的功耗。采用较大值的上拉电阻可以减小电流。但是,但是大的阻值会使输出信号的上升时间变慢。即上拉电阻R的阻值 决定了逻辑电平转换的沿的速度。阻值越大,速度越低功耗越小。反之亦然;
选择问题
- 如果你想要电平转换速度快的话,那么就选push-pull,但是缺点是功耗相对会大些。
- 如果你想要功耗低,且同时具有“线与”的功能,那么就用open-drain的模式。(同时注意GPIO硬件模块内部是否有上拉电阻,如果没有,需要硬件电路上添加额外的上拉电阻)
|