中核工建设集团网站,北京市工商注册登记网,建筑结构设计软件,企业邮箱如何申请推挽输出与开漏输出 文章目录 推挽输出与开漏输出前言一、推挽输出二、开漏输出总结 前言
在使用GPIO口时#xff0c;会遇到两种配置#xff0c;一种叫推挽输出#xff0c;一种叫开漏输出#xff0c;今天就简聊一聊这两种模式的差异和选择。 一、推挽输出
如图所示#…推挽输出与开漏输出 文章目录 推挽输出与开漏输出前言一、推挽输出二、开漏输出总结 前言
在使用GPIO口时会遇到两种配置一种叫推挽输出一种叫开漏输出今天就简聊一聊这两种模式的差异和选择。 一、推挽输出
如图所示以STM32的GPIO输出端口结构为例开漏与推挽电路主要由一个PMOS和一个NMOS组成两个MOS相互配合实现推挽电路。 如下图当Q1导通Q2截至时电流经红色路径将右侧MOS导通扩音器运作。整个过程电流由内向外类似将电流推出去。 如图当Q2导通Q1截至时电流经红色路径右侧MOS截至扩音器停止。整个过程通过GND将外部电流拉进来类似将电流挽回去。
如上所述两个过程一推一挽两种结果描述了GPIO输出高低电平时电流的一个动作就是常说推挽。 特点推挽输出的最大特点是可以真正能真正的输出高电平和低电平在两种电平下都具有驱动能力
二、开漏输出
简单总结一下Q1和Q2对于GPIO输出状态的影响其真值表如表
Q1状态Q2状态GPIO的输出状态导通导通VCC直接对地短路烧毁MOS管错误状态导通关断输出接VCC输出高电平关断导通输出接地输出低电平关断关断输出浮空相对与其它点的电阻无穷大呈现高阻态
在第3种和第4种情况下Q1均为关断状态此时可将Q1看成是不存在的此时Q2的漏极啥也没接处于浮空状态我们称之为开漏。 如果此时在右侧给他接一个芯片的EN脚假设EN脚为低电平失能高电平使能但是此时的漏极只能是高阻态和低电平没有对芯片EN使能和失能的功能。 那么怎么才能使用漏极拥有失能和失能的能力呢 如果在其中接入一个上拉电阻这是的情况会如何 如果Q1导通GND接入电流通过红色路径到地EN等效为GND此时也处于低电平 如果Q1断开GND断开电流通过绿色路径到ENEN被上拉此时处于高电平状态
那么此时就有聪明的小伙伴就要问了推挽电路可以输出高低电平直接使用推挽电路直接输出高低电平控制EN岂不快哉 我觉得是可以的但有一个问题就是GPIO输出的电压基本是恒定的而不同芯片的EN电压又是不一样的比如常见的STM32的GPIO输出一般是3.3v有的MCU的EN使能是5v有的又是1v。不可能针对每个芯片再转一遍电压吧这就体现了开漏电路的重要性了只需根据需要的电压配个上拉电阻就OK了
特点开漏输出最主要的特性就是高电平没有驱动能力需要借助外部上拉电阻才能真正输出高电平其电平跳转速度也上拉电阻决定
在使用多个GPIO控制EN的话如果使用推挽电路会出现这样一种情况如图 当Q1打开Q2关闭那么Vout1输出高电平 当Q3关闭Q4打开那么Vout2输出低电平 这种情况下电路等效为真值表的第一种情况MOSVCC通过MOS直接接地MOS烧毁不能进行“线与” 如果使用开漏模式就不会出现这样一种情况如图 只有当Vout1和Vout2都输出高电平时EN才会是高电平处于一种“线与”状态 总结
推挽输出真正的高电平有驱动能力无需上拉电阻电平跳转快不可“线与”不可电平转换
开漏输出虚假的高电平无驱动能力需要上拉电阻电平跳转慢可以“线与”可以电平转换