GPIO推挽输出和开漏输出详解
详细解说开漏输出和推挽输出
详细解说开漏输出和推挽输出1,开漏输出(Open-Drain)首先讲一下集电极开路输出(Open-Collector),单片机I/O常用的输出方式的开漏输出(Open-Drain),漏极开路电路概念中提到的“漏”是指MOSFET的漏极。
同理,集电极开路电路中的“集”就是指三极管的集电极。
在数字电路中,分别简称OD门和OC门。
典型的集电极开路电路如图所示。
电路中右侧的三极管集电极什么都不接,所以叫做集电极开路,左侧的三极管用于反相作用,即左侧输入“0”时左侧三极管截止,VCC通过电阻加到右侧三极管基极,右侧三极管导通,右侧输出端连接到地,输出“0”。
从图中电路可以看出集电极开路是无法输出高电平的,如果要想输出高电平可以在输出端加上上拉电阻。
因此集电极开路输出可以用做电平转换,通过上拉电阻上拉至不同的电压,来实现不同的电平转换。
用做驱动器,由于OC门电路的输出管的集电极悬空,使用时需外接一个上拉电阻Rp到电源VCC。
OC门使用上拉电阻以输出高电平,此外为了加大输出引脚的驱动能力,上拉电阻阻值的选择原则:从降低功耗及芯片的灌电流能力考虑应当足够大;从确保足够的驱动电流考虑应当足够小。
将OC门输出连在一起时,再通过一个电阻接外电源,可以实现“线与”逻辑关系。
只要电阻的阻值和外电源电压的数值选择得当,就能做到既保证输出的高、低电平符合要求,而且输出三极管的负载电流又不至于过大。
集电极开路输出除了可以实现多门的线与逻辑关系外,通过使用大功率的三极管还可用于直接驱动较大电流的负载,如继电器、脉冲变压器、指示灯等。
由于现在MOS管用普遍,而且性能要比晶体管要好,所以很多开漏输出电路,和后面要讲的推挽输出电路都用MOS管实现。
再来就是开漏输出电路,和集电极开路一样,顾名思义,开漏电路就是指从MOSFET的漏极输出的电路。
典型的用法是在漏极外部的电路添加上拉电阻到电源如图所示。
完整的开漏电路应由开漏器件和开漏上拉电阻组成。
STM32推挽输出、开漏输出、上拉输入详解
可以输出高,低电平,连接数字器件; 推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。
高低电平由IC的电源决定。
推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。
输出既可以向负载灌电流,也可以从负载抽取电流。
推拉式输出级既提高电路的负载能力,又提高开关速度。
当一个三级管开通的时候另一个关断,根据B端来确定,这是一个比较器当a>b时B 输出为0;当a<b时B输出为1当B为1时上边三极管导通,下边关闭;当B为0时下边三极管导通,上边关闭。
此为推挽当B为1时,这个管子导通,OUT接地,输出为0;当B为0时管子不导通,OUT接VCC输出为1.开漏输出:一般只能输出低电平,输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).开漏形式的电路有以下几个特点:∙利用外部电路的驱动能力,减少IC(集成电路,也称芯片)内部的驱动。
当IC内部MOSFET导通时,驱动电流是从外部的VCC流经R pull-up ,MOSFET到GND。
IC内部仅需很小的栅极驱动电流。
∙一般来说,开漏是用来连接不同电平的器件,匹配电平用的,因为开漏引脚不连接外部的上拉电阻时,只能输出低电平,如果需要同时具备输出高电平的功能,则需要接上拉电阻,很好的一个优点是通过改变上拉电源的电压,便可以改变传输电平。
比如加上上拉电阻就可以提供TTL/CMOS电平输出等。
(上拉电阻的阻值决定了逻辑电平转换的沿的速度。
阻值越大,速度越低功耗越小,所以负载电阻的选择要兼顾功耗和速度。
)∙OPEN-DRAIN提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。
因为上升沿是通过外接上拉无源电阻对负载充电,所以当电阻选择小时延时就小,但功耗大;反之延时大功耗小。
GPIO的八种模式的详细讲解
GPIO的⼋种模式的详细讲解输⼊模式-输⼊浮空(GPIO_Mode_IN_FLOATING)-输⼊上拉(GPIO_Mode_IPU)-输⼊下拉(GPIO_Mode_IPD)-模拟输⼊(GPIO_Mode_AIN)输出模式-开漏输出(GPIO_Mode_Out_OD)-开漏复⽤功能(GPIO_Mode_AF_OD)-推挽式输出(GPIO_Mode_Out_PP)-推挽式复⽤功能(GPIO_Mode_AF_PP)输⼊浮空:浮空就是逻辑器件与引脚即不接⾼电平,也不接低电平。
由于逻辑器件的内部结构,当它输⼊引脚悬空时,相当于该引脚接了⾼电平。
⼀般实际运⽤时,引脚不建议悬空,易受⼲扰。
通俗讲就是浮空就是浮在空中,就相当于此端⼝在默认情况下什么都不接,呈⾼阻态,这种设置在数据传输时⽤的⽐较多。
浮空最⼤的特点就是电压的不确定性,它可能是0V,页可能是VCC,还可能是介于两者之间的某个值(最有可能)浮空⼀般⽤来做ADC输⼊⽤,这样可以减少上下拉电阻对结果的影响输⼊上拉模式:上拉就是把点位拉⾼,⽐如拉到Vcc。
上拉就是将不确定的信号通过⼀个电阻嵌位在⾼电平。
电阻同时起到限流的作⽤。
弱强只是上拉电阻的阻值不同,没有什么严格区分输⼊下拉:就是把电压拉低,拉到GND。
与上拉原理相似模拟输⼊:模拟输⼊是指传统⽅式的输⼊,数字输⼊是输⼊PCM数字信号,即0,1的⼆进制数字信号,通过数模转换,转换成模拟信号,经前级放⼤进⼊功率放⼤器,功率放⼤器还是模拟的开漏输出:输出端相当于三极管的集电极,要得到⾼电平状态需要上拉电阻才⾏,适合于做电流型的驱动,其吸收电流的能⼒相对强(⼀般20mA以内)开漏形式的电路有以下⼏个特点:1. 利⽤外部电路的驱动能⼒,减少IC内部的驱动。
当IC内部MOSFET导通时,驱动电流是从外部的VCC流经R pull-up ,MOSFET到GND。
IC内部仅需很下的栅极驱动电流。
2. ⼀般来说,开漏是⽤来连接不同电平的器件,匹配电平⽤的,因为开漏引脚不连接外部的上拉电阻时,只能输出低电平,如果需要同时具备输出⾼电平的功能,则需要接上拉电阻,很好的⼀个优点是通过改变上拉电源的电压,便可以改变传输电平。
GPIO模式配置与详解
GPIO模式配置与详解⼀、GPIO配置(1)GPIO_Mode_AIN 模拟输⼊(2)GPIO_Mode_IN_FLOATING 浮空输⼊(3)GPIO_Mode_IPD 下拉输⼊(4)GPIO_Mode_IPU 上拉输⼊(5)GPIO_Mode_Out_OD 开漏输出(6)GPIO_Mode_Out_PP 推挽输出(7)GPIO_Mode_AF_OD 复⽤开漏输出(8)GPIO_Mode_AF_PP 复⽤推挽输出GPIO_Speed_10MHz 最⾼输出速率10MHzGPIO_Speed_2MHz 最⾼输出速率2MHzGPIO_Speed_50MHz 最⾼输出速率50MHz1.1 I/O⼝的输出模式下,有3种输出速度可选(2MHz、10MHz和50MHz),这个速度是指I/O⼝驱动电路的响应速度⽽不是输出信号的速度,输出信号的速度与程序有关(芯⽚内部在I/O⼝的输出部分安排了多个响应速度不同的输出驱动电路,⽤户可以根据⾃⼰的需要选择合适的驱动电路)。
通过选择速度来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的⽬的。
⾼频的驱动电路,噪声也⾼,当不需要⾼的输出频率时,请选⽤低频驱动电路,这样⾮常有利于提⾼系统的EMI性能。
当然如果要输出较⾼频率的信号,但却选⽤了较低频率的驱动模块,很可能会得到失真的输出信号。
关键是GPIO的引脚速度跟应⽤匹配(推荐10倍以上?)。
⽐如:1.1.1 对于串⼝,假如最⼤波特率只需115.2k,那么⽤2M的GPIO的引脚速度就够了,既省电也噪声⼩。
1.1.2 对于I2C接⼝,假如使⽤400k波特率,若想把余量留⼤些,那么⽤2M的GPIO的引脚速度或许不够,这时可以选⽤10M的GPIO引脚速度。
1.1.3 对于SPI接⼝,假如使⽤18M或9M波特率,⽤10M的GPIO的引脚速度显然不够了,需要选⽤50M的GPIO的引脚速度。
1.2 GPIO⼝设为输⼊时,输出驱动电路与端⼝是断开,所以输出速度配置⽆意义。
GPIO的各种模式
GPIO的各种模式GPIO管脚可以被配置为多种工作模式,其中有3种比较常用:高阻输进、推挽输出、开漏输出1.高阻输进(Input)图1.1 GPIO高阻输进模式结构示意图为减少信息传输线的数目,大多数计算机中的信息传输线采用总线形式,即凡要传输的同类信息都在同一组传输线,且信息是分时传送的。
在计算机中一般有三组总线,即数据总线、地址总线和控制总线。
为防止信息相互干扰,要求凡挂到总线上的寄存器或存储器等,它的输进输出端不仅能呈现0、1两个信息状态,而且还应能呈现第三个状态----高阻抗状态,即此时似乎它们的输出被开关断开,对总线状态不起作用,此时总线可由其他器件占用。
三态缓冲器即可实现上述功能,它除具有输进输出端之外,还有一控制端。
如图1.1所示,为GPIO管脚在高阻输进模式下的等效结构示意图。
这是一个管脚的情况,其它管脚的结构也是同样的。
输进模式的结构比较简单,就是一个带有施密特触发输进(Schmitt-triggered input)的三态缓冲器(U1),并具有很高的输进等效阻抗。
施密特触发输进的作用是能将缓慢变化的或者是畸变的输进脉冲信号整形成比较理想的矩形脉冲信号。
执行GPIO管脚读操纵时,在读脉冲(Read PULSE)的作用下会把管脚(Pin)确当前电平状态读到内部总线上(Internal Bus)。
在不执行读操纵时,外部管脚与内部总线之间是隔离的。
2.推挽输出(Output)图1.2 GPIO推挽输出模式结构示意图推挽输出原理:在功率放大器电路中大量采用推挽放大器电路,这种电路中用两只三极管构成一级放大器电路,两只三极管分别放大输进信号的正半周和负半周,即用一只三极管放大信号的正半周,用另一只三极管放大信号的负半周,两只三极管输出的半周信号在放大器负载上合并后得到一个完整周期的输出信号。
推挽放大器电路中,一只三极管工作在导通、放大状态时,另一只三极管处于截止状态,当输进信号变化到另一个半周后,原先导通、放大的三极管进进截止,而原先截止的三极管进进导通、放大状态,两只三极管在不断地交替导通放大和截止变化,所以称为推挽放大器()。
单片机IO口推挽与开漏输出详解
单片机I/O口推挽与开漏输出详解推挽输出:可以输出高,低电平,连接数字器件;推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止.开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).我们先来说说集电极开路输出的结构。
集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为反相之用,使输入为“0”时,输出也为“0”)。
对于图1,当左端的输入为“0”时,前面的三极管截止(即集电极C跟发射极E之间相当于断开),所以5V电源通过1K电阻加到右边的三极管上,右边的三极管导通(即相当于一个开关闭合);当左端的输入为“1”时,前面的三极管导通,而后面的三极管截止(相当于开关断开)。
我们将图1简化成图2的样子。
图2中的开关受软件控制,“1”时断开,“0”时闭合。
很明显可以看出,当开关闭合时,输出直接接地,所以输出电平为0。
而当开关断开时,则输出端悬空了,即高阻态。
这时电平状态未知,如果后面一个电阻负载(即使很轻的负载)到地,那么输出端的电平就被这个负载拉到低电平了,所以这个电路是不能输出高电平的。
再看图三。
图三中那个1K的电阻即是上拉电阻。
如果开关闭合,则有电流从1K电阻及开关上流过,但由于开关闭其它三个口带内部上拉),当我们要使用输入功能时,只要将输出口设置为1即可,这样就相当于那个开关断开,而对于P0口来说,就是高阻态了。
对于漏极开路(OD)输出,跟集电极开路输出是十分类似的。
将上面的三极管换成场效应管即可。
这样集电极就变成了漏极,OC就变成了OD,原理分析是一样的。
另一种输出结构是推挽输出。
推挽输出的结构就是把上面的上拉电阻也换成一个开关,当要输出高电平时,上面的开关通,下面的开关断;而要输出低电平时,则刚好相反。
比起OC或者OD来说,这样的推挽结构高、低电平驱动能力都很强。
GPIO输入输出各种模式详解
GPIO输入输出各种模式详解GPIO(General Purpose Input/Output)是通用输入输出口,用于连接外部设备和单片机。
在单片机中,GPIO可以配置为输入或输出模式,同时还有三种特殊的模式:推挽模式、开漏模式和准双向端口模式。
下面将从原理、使用场景和配置方法三个方面详细介绍这三种模式。
推挽模式(Push-Pull Mode)是GPIO输出的常见模式,也是默认的输出模式。
当GPIO输出引脚处于高电平状态时,推挽模式会提供高电平输出(通常为Vcc电源电平),而当GPIO输出引脚处于低电平状态时,推挽模式会提供低电平输出(通常接地)。
推挽模式的优势在于输出电流大,能够提供较强的驱动能力,适用于直接驱动大功率负载的场景。
例如,通过GPIO控制LED灯等外设时,推挽模式可以稳定提供给LED所需的驱动电流,保证LED的正常工作。
开漏模式(Open-Drain Mode)是GPIO输出的另一种模式。
当GPIO输出引脚处于高电平状态时,开漏模式会将输出引脚拉到高阻态,而当GPIO输出引脚处于低电平状态时,开漏模式会将输出引脚拉到地。
开漏模式需要通过一个外接上拉电阻将输出引脚连接到Vcc电源电平上。
开漏模式的优势在于输出可以与其他器件共享同一个总线,通过总线上的上拉电阻或其他器件的驱动电源提供高电平。
开漏模式适用于多个GPIO输出的引脚需要共享一个总线的场景,例如,使用I2C总线协议时,多个GPIO引脚可以共享SDA(数据线)和SCL(时钟线)。
准双向端口(Quasi-Bidirectional Port)是GPIO输入输出的特殊模式,常见于外设总线接口中。
准双向端口可以既作为输入又作为输出,且在不同的时间片段进行输入输出操作。
准双向端口的原理是通过一个三态门和一个外接上拉电阻实现的。
当GPIO处于输出模式时,三态门使得GPIO输出到外设;而当GPIO处于输入模式时,三态门处于高阻态,外设可以将信号输入到GPIO中。
推挽、开漏、强上拉、弱上拉、强下拉、弱下拉输出之间的区别
推挽、开漏、强上拉、弱上拉、强下拉、弱下拉输出推挽输出:可以输出高,低电平,连接数字器件;推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).上拉电阻:1、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于CO-MS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。
2、OC(集电极开路)门电路必须加上拉电阻,才能使用。
3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。
4、在COMS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗,提供泄荷通路。
5、芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限增强抗干扰能力。
6、提高总线的抗电磁干扰能力。
管脚悬空就比较容易接受外界的电磁干扰。
7、长线传输中电阻不匹配容易引起反射波干扰,加上下拉电阻是电阻匹配,有效的抑制反射波干扰。
上拉电阻阻值的选择原则包括:1、从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小。
2、从确保足够的驱动电流考虑应当足够小;电阻小,电流大。
3、对于高速电路,过大的上拉电阻可能边沿变平缓。
综合考虑以上三点,通常在1k到10k之间选取。
对下拉电阻也有类似道理对上拉电阻和下拉电阻的选择应结合开关管特性和下级电路的输入特性进行设定,主要需要考虑以下几个因素:1. 驱动能力与功耗的平衡。
以上拉电阻为例,一般地说,上拉电阻越小,驱动能力越强,但功耗越大,设计时应注意两者之间的均衡。
2.下级电路的驱动需求。
同样以上拉电阻为例,当输出高电平时,开关管断开,上拉电阻应适当选择以能够向下级电路提供足够的电流。
3.高低电平的设定。
不同电路的高低电平的门槛电平会有不同,电阻应适当设定以确保能输出正确的电平。
介绍gpio的八种工作模式特点及应用场景
标题:深度探讨GPIO的八种工作模式特点及应用场景在嵌入式系统中,GPIO(General Purpose Input/Output)是非常重要的接口,它可以在数字电路中扮演着非常重要的作用。
GPIO的工作模式多种多样,每种模式都有其特点和应用场景。
在本文中,我将深度探讨GPIO的八种工作模式特点以及在实际应用中的各种场景。
1. 输入模式- 简介:输入模式是最基础的GPIO工作模式,用于将外部信号输入到嵌入式系统中。
- 特点:具有高电平或低电平的状态,并能够接收外部传感器、开关等设备的信号。
- 应用场景:用于接收按钮、传感器等外部设备的输入信号,如温度传感器、光敏电阻等。
2. 输出模式- 简介:输出模式是将嵌入式系统中的数字信号输出到外部设备中。
- 特点:可以输出高电平或低电平的数字信号,控制外部设备的状态。
- 应用场景:用于控制LED灯、蜂鸣器、继电器等外部设备,实现各种实际应用。
3. 推挽输出- 简介:推挽输出是一种特殊的输出模式,可以输出较大的电流。
- 特点:输出信号可以直接驱动负载,不需要外部电路,具有较高的可靠性。
- 应用场景:用于驱动电机、舵机等高电流负载的驱动,如智能小车、机械臂等项目。
4. 开漏输出- 简介:开漏输出是一种适合于多路设备共享总线的输出模式。
- 特点:可用于实现多设备共享总线,并且可以实现硬件控制的通信协议。
- 应用场景:用于I2C、SPI等多设备共享总线的通信协议,以及控制LED显示器、LCD屏幕等设备。
5. 三态输出- 简介:三态输出是一种可以对外输出、内部拉高或拉低的输出模式。
- 特点:可以使输出引脚处于高阻态,避免对总线的冲突。
- 应用场景:多设备共享总线的通信协议中,避免总线冲突,保证通信的准确性。
6. 模拟输入- 简介:模拟输入模式是用于接收模拟信号的输入模式。
- 特点:可以接收模拟信号,并将其转换成数字信号,进行后续的处理。
- 应用场景:用于接收模拟传感器信号,如声音传感器、光线传感器等,进行模拟信号处理。
推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入..
推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入、浮空输入、模拟输入区别(Push-pull output, open drain output, multiplexing, multiplexing open drain output push-pull output and pull input and pull-down input, floatinginput, analoThe push-pull output, open drain output, multiplexing, multiplexing open drain output push-pull output and pull input and pull-down input, floating input, analog input differenceAbout Push-Pull Outputs, open drain outputs, multiplexed open drain outputs, and multiplexed Push-Pull OutputsPull down input, input, floating input, analog input and differenceWhen I read the data book recently, I found that there are 8 kinds of configuration for GPIO in Cortex-M3:(1) GPIO_Mode_AIN analog input(2) GPIO_Mode_IN_FLOATING floating input(3) GPIO_Mode_IPD pull down input(4) GPIO_Mode_IPU pull-up input(5) GPIO_Mode_Out_OD open drain output(6) GPIO_Mode_Out_PP push-pull output(7) GPIO_Mode_AF_OD multiplex open drain output(8) GPIO_Mode_AF_PP multiplex push-pull outputFor the novice, I think this concept is must know, usually contact is the most open drain push-pull output, output, pull the input of the three, but has not done up to these. So, here's a summary:Push-pull output: can output high, low level, connect digital devices; push-pull structure is generally refers to two transistors respectively by two complementary signal control, always in a triode conduction time another cut-off. The high and low levels are limited by the power of the IC.The push-pull circuit is the two parameter of the same transistor or MOSFET in push-pull mode exists in the circuit, each responsible for the positive and negative half cycles of wave amplification, circuit, power switch two symmetrical tube only one conduction,Therefore, the conduction loss is small and the efficiency is high. The output can either tap the load or extract the current from the load. The push-pull type output stage not only improves the load capacity of the circuit, but also increases the speed of switching.Detailed understanding:As shown, the output stage of the push-pull amplifier has twoarms (two sets of amplifying elements). When an arm current increases, another arm current decreases, and the two states rotate in turn. For load, it seems that a "arm" is pushing, a "arm" in the pull, together to complete the current output task. When the output high power, that is, the lower load gate input high power, the output current will be lower than the gate from the power supply through the VT3 pull out. In this way, when the output is high or low, the VT3 and the VT5 will work alternately, thus reducing the power consumption and improving the endurance of each tube. Because no matter which way to go, the resistance of the pipe is very small, so that the RC constant is very small, and the conversion speed is very fast. Therefore, the push-pull type output stage not only improves the load capacity of the circuit, but also improves the switching speed.Open drain output: the output is equivalent to the collector of the triode. In order to get a high level state, a pull-up resistor is needed. It is suitable for making current mode drivers and has relatively strong ability to absorb current (less than 20mA in general)The open drain circuit has the following characteristics:1. use external circuit drive capability to reduce IC internal drive. When the IC is internally MOSFET, the drive current is flowing from the external VCC through the R, pull-up, MOSFET to GND. The IC requires only a very low gate drive current.2. generally speaking,Open drain is a device used to connect different levels, withthe matching level, because the open drain pin is not connected to an external pull-up resistor, only the output low, if you need to have a high level output function requires a pull-up resistor, a good advantage is by changing the power supply voltage on it can change the transmission level. For example, with a pull-up resistor, you can provide TTL/CMOS level output. The resistance of the pull-up resistor determines the speed at which the level of the logic level is converted. The higher the resistance, the lower the speed, the smaller the power consumption, so the choice of load resistance should take into account both power consumption and speed3., OPEN-DRAIN offers flexible output, but also has its weakness, that is, to bring the delay along the rising edge. Because the rising edge charges the load through an external pull-up passive resistor, when the resistor is selected, the time delay is small, but the power consumption is large; on the contrary, the delay is large and the power consumption is small. Therefore, if the delay is required, it is recommended to use the falling edge output.4., you can connect multiple open drain Pin to one line. Througha pull-up resistor, a logical relationship is formed without increasing the number of devices. This is also the principle of I2C, SMBus and other buses to determine the bus occupancy status. Added: what is "line and"? :In a node (line), connect a pullup resistor to the collector C power VCC or VDD and N or NPN NMOS or drain D transistor, the transistor emitter E or S source are connected with a ground wire, as long as there is a transistor saturation, this node(line) is pull to the ground level.Because the base transistor current injection (NPN) or gate with high level (NMOS), the transistor will be saturated, so the base or gate of the node (line) is the relationship or non NOR logic. If this node is followed by an inverter is OR or logic.In fact, can be simply understood as: all pins are connected together, an external pull-up resistor, if there is a pin output to logic 0, equivalent to the ground, and the parallel loop "is equivalent to a wire short circuit, so the external circuit logic level is 0, only for high level, and the result is logic 1.For push-pull output and open drain output, the last one is outlined in the simplest form:This figure is on the left side of the push-pull output mode, the comparator output high power triode PNP usually below and above the pipe cut-off, NPN triode output level VS+; when the comparator output low on the contrary, PNP triode output and connected to low electrical level. The right side can be understood as open drain output, which needs to be pulled up.Floating input: input for floating, very authoritative interpretation has not been found, but from the following diagram to understand.The floating input is generally used for the external input keys, combined with the input part of the circuit diagram, Iunderstand the floating input condition, level IO is uncertain, completely decided by external input, if the pin is left unconnected in case of the level of the read port is uncertain.Pull input / pull-down input / analog input: these concepts are well understood and can be easily understood from the literal.Multiplex open drain output and multiplex push-pull output: this can be understood as the configuration of the GPIO port when it is used as the second function (that is not used as a universal IO port)Finally, a summary of the use of the situation:Select IO mode in STM32(1) _IN_FLOATING - floating input floating input, can do KEY identification, RX1(2) pull input _IPU - IO internal pull-up resistor input(3) bring down the input _IPD - IO internal pull-down resistor input(4) analog input _AIN - use ADC analog input or save power at low power consumption(5) open drain output _OUT_OD - IO output 0, connect GND, IO output 1, suspension, need external pull-up resistor, can realize the output high level. When the output is 1, the state of the IO port is pulled high by the pull-up resistor, butbecause it is an open drain output mode, the IO port can also be changed from an external circuit to a low level or constant. Can read the IO input level changes, the realization of C51 IO two-way function(6) push-pull output _OUT_PP - IO output, 0-, GND, IO output, 1 - VCC, read input value is unknown(7) multiplex function push-pull output _AF_PP - chip internal and external functions (I2C, SCL, SDA)(8) the open drain output of multiplex function _AF_OD - chip internal and external functions (TX1, MOSI, MISO.SCK.SS)STM32 settings instance:(1) simulation using the I2C open drain output _OUT_OD, pull-up resistor, can output 0 and 1 readings; first GPIO_SetBits (GPIOB, GPIO_Pin_0); pull up, then you can read the value of IO; GPIO_ReadInputDataBit (GPIOB, GPIO_Pin_0);(2) if the supreme resistance is high, the IO default; need to read the value of IO, you can use the pull input _IPU and float input _IN_FLOATING and open drain output _OUT_OD;。
推挽输出与开漏输出的区别
推挽输出与开漏输出的区别开漏输出:OC门的输出就是开漏输出;OD门的输出也是开漏输出。
TTL电路有集电极开路OC门,MOS管也有和集电极对应的漏极开路的OD门,它的输出就叫做开漏输出。
它可以吸收很大的电流,但是不能向外输出电流。
所以,为了能输入和输出电流,它使用的时候要跟电源和上拉电阻一齐用。
OC门开漏输出和OD门开漏输出都是为了同一个目的,都是为了实现逻辑器件的线与逻辑,当然选用不同的外接电阻也可以实现外围驱动能力的增加。
当你应用此电路的时候,要注意应用时要加上拉电阻接电源,这样才能保证逻辑的正确,在电阻上要根据逻辑器件的扇入扇出系数来确定,但一般mos 电路带载同样的mos电路能力比较强,所以电阻通常可以选择2.2k,4.9k这样一些常用的。
推挽输出:可以输出高,低电平,连接数字器件;开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止.要实现线与需要用OC(open collector)门电路.是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小,效率高。
输出既可以向负载灌电流,也可以从负载抽取电流。
所谓开漏电路概念中提到的“漏”就是指MOSFET的漏极。
同理,开集电路中的“集”就是指三极管的集电极。
开漏电路就是指以MOSFET的漏极为输出的电路。
一般的用法是会在漏极外部的电路添加上拉电阻。
完整的开漏电路应该由开漏器件和开漏上拉电阻组成。
如图1所示:组成开漏形式的电路有以下几个特点:1. 利用外部电路的驱动能力,减少IC内部的驱动。
当IC内部MOSFET导通时,驱动电流是从外部的VCC流经R pull-up ,MOSFET到GND。
4种输出方式的研究
STM32四种输出模式:1、普通推挽输出(GPIO_Mode_Out_PP):使用场合:一般用在0V和3.3V的场合。
使用方法:直接使用输出电平:推挽输出的低电平是0V,高电平是3.3V。
2、普通开漏输出(GPIO_Mode_Out_OD):使用场合:一般用在电平不匹配的场合,如需要输出5V的高电平。
使用方法:就需要再外部接一个上拉电阻,电源为5V,把GPIO设置为开漏模式,当输出高组态时,由上拉电阻和电源向外输出5V的电压。
3.复用推挽输出(GPIO_Mode_AF_PP):用作串口的输出。
内外设功能(TX1,MOSI,MISO.SCK.SS)复用推挽表示引脚的io的操作由相应的功能模块来完成,普通推挽表示你需要通过gpio 寄存器来操作引脚。
SCK、MOSI、MISO是SPI的硬件控制的,所以是AF。
CE是软件控制,所以就是GPIO。
4、复用开漏输出(GPIO_Mode_AF_OD):(I2C的SCL,SDA),片。
使用方法:所有的开漏输出都需要接上拉电阻。
(1)模拟I2C使用开漏输出_OUT_OD,接上拉电阻,能够正确输出0和1;读值时先GPIO_SetBits(GPIOB, GPIO_Pin_0);拉高,然后可以读IO的值;使用GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0);(2)如果是无上拉电阻,IO默认是高电平;需要读取IO的值,可以使用带上拉输入_IPU和浮空输入_IN_FLOATING和开漏输出_OUT_O实验:四种输出方式的电压值比较悬空:1.5V-2.3V1.普通推挽输出:高电平:3.30V低电平:0.03V(接LED灯) 0.001V(未接)规律:当输出模式设置为推挽输出时,输出的电压值受外部电路影响很小。
2.开漏输出无上拉电阻时:高电平:1.04-1.12V低电平:0.001V不同上拉电阻和电压值测得输出值:3.3V 10K欧 5V,10K欧电阻上拉 9.0V 10K欧高电平: 3.298V 3.71V 3.79V低电平: 0.009 V 0.013V 0.023V3.3V,2.7K欧 5V,2.7K欧电阻上拉 9.0V 2.7K欧高电平:3.30V 3.82V 3.96V低电平: 0.151 V 0.180V3.3V,380欧 5V,380欧 9.0V 380欧高电平: 3.30V 3.96V 4.230V低电平: 0.240 V 0.440V 0.789V规律:开漏模式下:1、随着外部上拉电阻的减小,输出的电平越来越接近于外部电压。
推挽输出与开漏输出(自己整理,网上最全讲解)
鉴于网友们对于开漏输出和推挽输出都不是很明白,我把网上所有关于开漏和推挽的讲解都做了整合,虽然不是原创,但也希望大家都可以从中获益!!推挽输出与开漏输出的区别单片机学习之推挽输出与漏极开路输出方式push- pull输出就是一般所说的推挽输出,在cmos电路里面应该较cmos输出更合适,因为在cmos里面的push-pull输出能力不可能做得双极那么大。
输出能力看ic内部输出极n管p管的面积。
和开漏输出相比,push-pull的高低电平由ic的电源低定,不能简单的做逻辑操作等。
push-pull是现在cmos电路里面用得最多的输出级设计方式。
一.什么是oc、od集电极开路门(集电极开路oc 或源极开路od)open-drain是漏极开路输出的意思,相当于集电极开路(open-collector)输出,即ttl中的集电极开路(oc)输出。
一般用于线或、线与,也有的用于电流驱动。
open-drain是对mos管而言,open-collector是对双极型管而言,在用法上没啥区别。
开漏形式的电路有以下几个特点:1.利用外部电路的驱动能力,减少ic内部的驱动。
或驱动比芯片电源电压高的负载.2. 可以将多个开漏输出的pin,连接到一条线上。
通过一只上拉电阻,在不增加任何器件的情况下,形成“与逻辑”关系。
这也是i2c,smbus等总线判断总线占用状态的原理。
如果作为图腾输出必须接上拉电阻。
接容性负载时,下降延是芯片内的晶体管,是有源驱动,速度较快;上升延是无源的外接电阻,速度慢。
如果要求速度高电阻选择要小,功耗会大。
所以负载电阻的选择要兼顾功耗和速度。
3.可以利用改变上拉电源的电压,改变传输电平。
例如加上上拉电阻就可以提供ttl/cmos电平输出等。
4.开漏pin不连接外部的上拉电阻,则只能输出低电平。
一般来说,开漏是用来连接不同电平的器件,匹配电平用的。
5.正常的cmos输出级是上、下两个管子,把上面的管子去掉就是open-drain了。
有关推挽输出、开漏输出、复用开漏输出、复用推
有关推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入、浮空输入、模拟输入的区别最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多:(1)GPIO_Mode_AIN 模拟输入(2)GPIO_Mode_IN_FLOATING 浮空输入(3)GPIO_Mode_IPD 下拉输入(4)GPIO_Mode_IPU 上拉输入(5)GPIO_Mode_Out_OD 开漏输出(6)GPIO_Mode_Out_PP 推挽输出(7)GPIO_Mode_AF_OD 复用开漏输出(8)GPIO_Mode_AF_PP 复用推挽输出对于刚入门的新手,我想这几个概念是必须得搞清楚的,平时接触的最多的也就是推挽输出、开漏输出、上拉输入这三种,但一直未曾对这些做过归纳。
因此,在这里做一个总结:推挽输出:可以输出高,低电平,连接数字器件; 推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。
高低电平由IC的电源低定。
推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。
输出既可以向负载灌电流,也可以从负载抽取电流。
推拉式输出级既提高电路的负载能力,又提高开关速度。
详细理解:如图所示,推挽放大器的输出级有两个“臂”(两组放大元件),一个“臂”的电流增加时,另一个“臂”的电流则减小,二者的状态轮流转换。
对负载而言,好像是一个“臂”在推,一个“臂”在拉,共同完成电流输出任务。
当输出高电平时,也就是下级负载门输入高电平时,输出端的电流将是下级门从本级电源经VT3拉出。
这样一来,输出高低电平时,VT3 一路和 VT5一路将交替工作,从而减低了功耗,提高了每个管的承受能力。
又由于不论走哪一路,管子导通电阻都很小,使RC常数很小,转变速度很快。
GPIO输入输出各种模式(推挽、开漏、准双向端口)详解
GPIO输入输出各种模式(推挽、开漏、准双向端口)详解概述能将处理器的GPIO(General Purpose Input and Output)内部结构和各种模式彻底弄清楚的人并不多,最近在百度上搜索了大量关于这部分的资料,对于其中很多问题的说法并不统一。
本文尽可能的将IO涉及到的所有问题罗列出来,对于有明确答案的问题解释清楚,对于还存在疑问的地方也将问题提出,供大家讨论。
概括地说,IO的功能模式大致可以分为输入、输出以及输入输出双向三大类。
其中作为基本输入IO,相对比较简单,主要涉及的知识点就是高阻态;作为输出IO,相比于输入复杂一些,工作模式主要有开漏(Open Drain)模式和推挽(Push-Pull)模式,这一部分涉及的知识点比较多;对于输入输出IO,容易产生疑惑的地方是准双向和双向端口的区别。
下面就按照这样的顺序依次介绍各个模式的详细情况。
输入IO这里所说的输入IO,指的是只作为输入,不具有输出功能。
此时对于input引脚的要求就是高阻(高阻与三态是同一个概念)。
基本输入电路的类型大致可以分为3类:基本输入IO电路、施密特触发输入电路以及弱上拉输入电路。
先从最基本的基本输入IO电路说起,其电路如图1所示。
图1其中的缓冲器U1是具有控制输入端,且具有高阻抗特性的三态缓冲器。
通俗地说就是这个缓冲器对外来说是高阻的,相当于在控制输入端不使能的情况下,物理引脚与内部总线之间是完全隔离的,完全不会影响内部电路。
而控制输入端的作用就是可以发出读Pin状态的操作指令。
其过程如图2所示。
图 2这种基本电路的一个缺点是在读取外部信号的跳变沿时会出现抖动,如下图所示。
图 3于是施密特触发输入电路就是解决了上述这种抖动的问题,其经过施密特触发器后的信号如图4所示。
图 4对于输入电路还存在另外一个问题,就是当输入引脚悬空的时候,输入端检测到的电平是高还是低?当输入信号没有被驱动,即悬空(Floating)时,输入引脚上任何的噪声都会改变输入端检测到的电平,如图5所示。
推挽模式与开漏模式的个人见解
首先看以下STM32的GPIO的原理图如下:
当端口配置为输出时:
开漏模式:输出0时,N-MOS导通,P-MOS不被激活,输出0。
输出1时,N-MOS高阻,P-MOS不被激活,输出1(需要外部上拉);
此模式可以把端口作为双向IO使用。
个人解释:开漏模式的意思是上图的“输出控制”并不控制标注为“1”的线,让P-MOS不被激活(相当于没有这个器件),只有N-MOS。
此时,我们反推的话:
当输出即“3”线为0时,说明N-MOS导通了,也就是当某一条件下“输出控制”
控制2线,让N-MOS导通,结果就可以得到“3”出输出为0。
当输出“3”为1
时,说明N-MOS在“输出控制”的控制下没有工作,呈高阻态,那么“3”线则
是N-MOS的漏脚悬空,若想输出1,必须要外部上拉。
与51单片机的P0口类似,使用0的时候没问题,使用1的话需要外部加上拉。
推挽模式:输出0时,N-MOS导通,P-MOS高阻,输出0。
输出1时,N-MOS高阻,P-MOS导通,输出1(不需要外部上拉)。
个人解释:此种模式即在“输出控制”的条件下,N-MOS和P-MOS都是存在的,但是同时只有一个工作,具体可以百度。
当输出即“3”线为0的时,反推,
说明P-MOS是没有工作的(高阻),可以把此时的P-MOS当做一个大电阻,并且
上拉了,所以这里对比开漏模式的话不需要外部上拉。
N-MOS是导通的。
当输出
即“3”线为1时,反推,此时P-MOS是没有导通的,而N-MOS是没有工作的(高
阻)。
推挽、开漏、强上拉、弱上拉、强下拉、弱下拉输出
推挽、开漏、强上拉、弱上拉、强下拉、弱下拉输出推挽输出:可以输出高,低电平,连接数字器件;推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).上拉电阻:1、当TTL电路驱动CMOS电路时,如果TTL电路输出的高电平低于CMOS 电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。
2、OC(集电极开路)门电路必须加上拉电阻,才能使用。
3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。
4、在CMOS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗,提供泄荷通路。
5、芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限增强抗干扰能力。
6、提高总线的抗电磁干扰能力。
管脚悬空就比较容易接受外界的电磁干扰。
7、长线传输中电阻不匹配容易引起反射波干扰,加上下拉电阻是电阻匹配,有效的抑制反射波干扰。
上拉电阻阻值的选择原则包括:1、从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小。
2、从确保足够的驱动电流考虑应当足够小;电阻小,电流大。
3、对于高速电路,过大的上拉电阻可能边沿变平缓。
综合考虑以上三点,通常在1k到10k之间选取。
对下拉电阻也有类似道理对上拉电阻和下拉电阻的选择应结合开关管特性和下级电路的输入特性进行设定,主要需要考虑以下几个因素:1. 驱动能力与功耗的平衡。
以上拉电阻为例,一般地说,上拉电阻越小,驱动能力越强,但功耗越大,设计是应注意两者之间的均衡。
2.下级电路的驱动需求。
同样以上拉电阻为例,当输出高电平时,开关管断开,上拉电阻应适当选择以能够向下级电路提供足够的电流。
3.高低电平的设定。
不同电路的高低电平的门槛电平会有不同,电阻应适当设定以确保能输出正确的电平。
GPIO推挽输出和开漏输出详解
open-drain与push-pull】
GPIO的功能,简单说就是可以根据自己的需要去配置为输入或输出。
但是在配置GPIO管脚的时候,常会见到两种模式:开漏(open-drain,漏极开路)和推挽(push-pull)。
对此两种模式,有何区别和联系,下面整理了一些资料,来详细解释一下:
图表1 Push-Pull对比Open-Drain
原理图图表2 push-pull原理图
图表3 open-drain原理图
图表4 open-drain“线与”功能
IC的逻辑电平由电源Vcc1决定,而输出高电平则由Vcc2决定。
这样我们就可以用低电平逻辑控制输出高电平逻辑了。
【open-drain和push-pull的总结】
对于GPIO的模式的设置,在不考虑是否需要额外的上拉电阻的情况下,是设置为open-drain还是push-pull,说到底,还是个权衡的问题:
如果你想要电平转换速度快的话,那么就选push-pull,但是缺点是功耗相对会大些。
如果你想要功耗低,且同时具有“线与”的功能,那么就用open-drain的模式。
(同时注意GPIO硬件模块内部是否有上拉电阻,如果没有,需要硬件电路上添加额外的上拉电阻)
正所谓,转换速度与功耗,是鱼与熊掌,二则不可兼得焉。
欢迎您的下载,
资料仅供参考!
致力为企业和个人提供合同协议,策划案计划书,学习资料等等
打造全网一站式需求。
推挽输出与开漏输出结构和原理详解
推挽输出与开漏输出结构和原理详解推挽输出和开漏输出是指在数字电路中用于驱动外部负载的两种常用结构。
它们在控制信号的输出方式、应用领域和工作原理等方面有所不同。
下面将对推挽输出和开漏输出进行详解。
1.推挽输出结构及原理推挽输出结构是一种常用的数字电路输出结构,它由一个NPN型晶体管和一个PNP型晶体管组成,用于驱动负载。
推挽输出在广泛的应用领域中,如信号灯控制、音频放大器、电机驱动等。
推挽输出的结构示意图如下:```VccR1Input signal/,\NPN PNP Load_______```推挽输出的工作原理如下:(1) 当输入信号为低电平(0V)时,NPN晶体管截止,PNP晶体管饱和,输出接近Vcc电压,负载得到驱动。
(2) 当输入信号为高电平(Vcc)时,NPN晶体管饱和,PNP晶体管截止,输出接近0V,负载失去驱动。
推挽输出的特点:-输出电流能够提供相对较高的电流驱动能力;- 输出电压可以与Vcc相同,也可以与地(GND)相同;-推挽输出的集电极电阻很小,因此可以提供较低的输出电压误差;-适用于推挽驱动、电机驱动、音频放大器等需要提供大电流的应用场景。
2.开漏输出结构及原理开漏输出结构也是一种常用的数字电路输出结构,它通过NPN晶体管或MOSFET管驱动负载。
开漏输出结构广泛应用于数字IC、微控制器、I2C总线等。
开漏输出的结构示意图如下:```VccR1Input signal_____,______ LoadNPNN-MOS```开漏输出的工作原理如下:(1)当输入信号为低电平(0V)时,NPN晶体管截止或MOSFET导通,输出接近0V,负载得到驱动。
(2) 当输入信号为高电平(Vcc)时,NPN晶体管饱和或MOSFET截止,输出为高阻态(Open),负载失去驱动。
开漏输出的特点:-输出电流能够提供相对较高的电流驱动能力;-输出电压只能接近地(GND);-输出电压的高、低电平通过外部上拉电阻(R1)进行限制;-适用于非对称驱动、开关电源控制等需要较高的输出电流和开路状态的应用场景。
介绍gpio的八种工作模式特点及应用场景
介绍gpio的八种工作模式特点及应用场景GPIO(General Purpose Input/Output)是通用输入输出端口,是单片机中最基本的外设之一。
它能够在不同的工作模式下,灵活地控制外部设备的输入和输出,广泛应用于嵌入式系统、物联网设备和各种传感器、执行器等外围设备的控制和通信中。
GPIO的工作模式决定了其在不同场景下的特点和应用,下面我将介绍GPIO的八种工作模式特点及应用场景。
1. 输入模式在输入模式下,GPIO端口可以接收来自外部设备的信号输入。
这种模式常用于连接各类传感器,如温度传感器、光照传感器等。
通过读取传感器的输出信号,单片机可以获取外部环境的信息,实现对环境的感知和监测。
在物联网设备中,输入模式的GPIO广泛应用于接收各类传感器的数据。
2. 输出模式在输出模式下,GPIO端口可以向外部设备发送信号输出。
这种模式常用于控制各类执行器,如电机、继电器等。
通过向执行器输出控制信号,单片机可以实现对外部设备的控制和操作。
在智能家居、工业自动化等领域,输出模式的GPIO被广泛应用于控制各类执行器的动作。
3. 上拉模式当GPIO端口处于输入模式时,如果外部设备未连接,为了确保输入信号的稳定性,可以使用上拉模式。
上拉模式通过内部上拉电阻将GPIO端口拉高,当外部设备未连接时,输入信号被拉高,保持在逻辑高电平。
这种模式常用于防止输入信号漂移,保证输入端口的信号稳定性。
4. 下拉模式与上拉模式相反,下拉模式在外部设备未连接时,通过内部下拉电阻将GPIO端口拉低,保持在逻辑低电平。
这种模式同样用于防止输入信号漂移,保证输入端口的信号稳定性。
5. 开漏输出模式在开漏输出模式下,GPIO端口可以输出低电平信号,但对于高电平信号只能拉高至输入电源电压。
这种模式常用于多个设备共享一个总线的情况,如I2C总线、SPI总线等。
开漏输出可以实现多个设备数据的协同传输,保证总线数据的稳定性。
6. 复用功能模式GPIO端口的复用功能模式可以使其同时具有不同的功能,如UART 通信、定时器输出等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)可以将多个开漏输出的Pin脚,连接到一条线上,形成“与逻辑”关系,即“线与”功能,任意一个变低后,开漏线上的逻辑就为0了。这也是I2C,SMBus等总线判断总线占用状态的原理。(3)利用 外部电路的驱动能力,减少IC内部的驱动。当IC内部MOSFET导通时,驱动电流是从外部的VCC流经R pull-up ,MOSFET到GND。IC内部仅需很下的栅极驱动电流。(4)可以利用改变上拉电源的电压,改变传输电平:图表5 open-drain输出电平的原理
Open-drain输出,则是比push-pull少了个top transistor,只有那个bottom transistor。(就像push-pull中的那样)当bottom transistor关闭,则输出为高电平。此处没法输出高电平,想要输出高电平,必须外部再接一个上拉电阻(pull-upresistor)。Open-drain只能够漏电流(sink current),如果想要集电流(source current),则需要加一个上拉电阻。
对于GPIO的模式的设置,在不考虑是否需要额外的上拉电阻的情况下,是设置为open-drain还是push-pull,说到底,还是个权衡的问题:
如果你想要电平转换速度快的话,那么就选push-pull,但是缺点是功耗相对会大些。
如果你想要功耗低,且同时具有“线与”的功能,那么就用open-drain的模式。(同时注意GPIO硬件模块内部是否有上拉电阻,如果没有,需要硬件电路上
原理图
图表2 push-pull原理图
图表3 open-drain原理图
图表4 open-drain“线与”功能
优点
(1)可以吸电流,也可以贯电流;(2)和开漏输出相比,push-pull的高低电平由IC的电源低定,不能简单的做逻辑操作等。
Байду номын сангаас(1)
对于各种电压节点间的电平转换非常有用,可以用于各种电压节点的Up-translate和down-translate转换
IC的逻辑电平由电源Vcc1决定,而输出高电平则由Vcc2决定。这样我们就可以用低电平逻辑控制输出高电平逻辑了。
缺点
一条总线上只能有一个push-pull输出的器件;
开漏Pin不连接外部的上拉电阻,则只能输出低电平。当输出电平为低时,N沟道三极管是导通的,这样在Vcc'和GND之间有一个持续的电流流过上拉电阻R和三极管Q1。这会影响整个系统的功耗。采用较大值的上拉电阻可以减小电流。但是,但是大的阻值会使输出信号的上升时间变慢。即上拉电阻R pull-up的阻值 决定了逻辑电平转换的沿的速度
某老外的更加透彻的解释
Push-pull输出,实际上内部是用了两个晶体管(transistor),此处分别称为top transistor和bottom transistor。通过开关对应的晶体管,输出对应的电平。top transistor打开(bottom transistor关闭),输出为高电平;bottom transistor打开(top transistor关闭),输出低电平。Push-pull即能够漏电流(sink current),又可以集电流(source current)。其也许有,也许没有另外一个状态:高阻抗(high impedance)状态。除非Push-pull需要支持额外的高阻抗状态,否则不需要额外的上拉电阻。
图表1 Push-Pull对比Open-Drain
Push-Pull推挽输出
Open-Drain开漏输出
原理
输出的器件是指输出脚内部集成有一对互补的MOSFET,当Q1导通、Q2截止时输出高电平;而当Q1截止导通、Q2导通时输出低电平
开漏电路就是指以MOSFET的漏极为输出的电路。指内部输出和地之间有个N沟道的MOSFET(Q1),这些器件可以用于电平转换的应用。输出电压由Vcc'决定。Vcc'可以大于输入高电平电压VCC(up-translate)也可以低于输入高电平电压VCC(down-translate)。
添加额外的上拉电阻)
正所谓,转换速度与功耗,是鱼与熊掌,二则不可兼得焉。
。阻值越大,速度越低功耗越小。反之亦然。
特点
在CMOS电路里面应该叫CMOS输出更合适,因为在CMOS里面的push-pull输出能力不可能做得双极那么大。输出能力看IC内部输出极N管P管的面积。push-pull是现在CMOS电路里面用得最多的输出级设计方式。
【open-drain和push-pull的总结】