整理笔记——推挽输出、开漏输出

本文详细介绍了STM32单片机中IO口的推挽输出、开漏输出以及复用输出模式,包括它们的工作原理、应用场景和电平控制,强调了在选择输出模式时需考虑外设需求和电路匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        在使用MCU时,常看到配置IO口为推挽输出、开漏输出,以STM32为例,IO口有一下集中模式,单片机的内部电路简化图如下:

        1.推挽输出

        2.开漏输出

        3.复用推挽输出

        4.复用开漏输出

一、推挽输出

推挽电路的示意图:

        当IN输入低电平时,P-MOS导通,N-MOS截止,此时OUT输出的电压是VDD,高电平;

        当IN输入高电平时,N-MOS导通,P-MOS截止,此时OUT输出的电压是VSS,低电平;

        用推挽输出模式,可以得到一个明确的高电平或者低电平,可以实现高低电平的快速切换。在实际使用时,经常用IO口的高低电平去驱动一个LED或者是蜂鸣器,使用的就是MCU的推挽输出模式。

        推挽输出驱动LED时,LED接地,此时电流的方向是从MCU往外输出,这个电流称为拉电流

     

          反之,推挽输出驱动LED时,LED接电源,此时电流的方向是从外往MCU输入,这个电流成为灌电流

        不管是灌电流还是拉电流,都是针对IO口作为输出模式而言的,它们是衡量电路驱动能力的重要参数,数据手册上可以看到这个两个参数,在实际设计电路时使用的上拉电阻或者是下拉电阻,要根据这两个参数选择阻值,从而匹配电路的输出能力

        再以实际的STM32 为例,推挽输出模式,如果MCU的IO口要输出高电平,则P-mos导通,N-mos截止,此时IO引脚上的电压就是VDD高电平。

        如果MCU的IO口要输出低电平,则N-mos导通,P-mos截止,此时IO引脚可以看做直接接了GND,所以是低电平。

        

二、开漏输出

开漏电路的示意图:

        开漏指的是场效应管的“漏极”,开漏输出就是把场效应管的漏极直接引出来作为输出引脚。

        

        开漏输出最重要的作用是:电平匹配在设计电路时不论是单片机还是外设芯片或是负载,每个个体的逻辑电平可能是不一样的,这种情况时就需要作电平的匹配,就用到了开漏输出模式。

        开漏输出模式,因为场效应管的漏极直接引出,是需要加一个外置电源的,我们可以通过外接电源的方式得到想要的电平。因为外接电源的方式,从MCU的角度来说,减轻了MCU的负担。

        例如在使用MCU自带的IIC模块时,就要求配置想要的管脚为开漏输出模式, 多个开漏输出被接在了同一个线上,下图中如果其中的某个引脚的漏极为低电平,则整个总线上都是低电平,这是“与逻辑”,所以被成为“线与”。因为IIC总线可以接很多个设备,MCU就是通过这种方式判断当前总线的状态。

        再以STM32为例:

       

        当N-MOS与P-MOS都截止时,此时的引脚就相当于连接了一个无穷大的电阻,所有IO引脚对外呈现的是高阻态,当MCU供电为3.3V,开漏输出引脚上接外部5V电源时,因为N-MOS的阻值无穷大,所以此时IO引脚上的电压就接近与5V电压。

        开漏的线与特性:当多个开漏输出链接到一起,当它们全部都输出高电平时,总线上才是高电平,但凡有一个开漏输出引脚上是低电平,总线就会被拉低。

三、复用输出模式 

        复用模式输出连接的是MCU的内部外设,例如PWM、USART、IIC。具体用复用开漏输出还是复用推挽输出,这个就要根据外设需求来设置,例如IIC在使用时需要用到线与特性,就必须在程序里配置IO引脚为复用开漏输出;像UART或者PWM功能,需要IO口高速变化确定的高低电平,则必须配置为复用推挽输出。

<think>好的,我现在要解决用户关于输出推挽输出的区别及应用场景的问题。首先,我需要回忆这两种输出模式的基本概念和工作原理。根据提供的引用资料,推挽输出使用两个晶体管(NPN和PNP)来分别控制高低电平的输出,而输出只有下拉晶体管,需要外接上拉电阻才能输出高电平。 接下来,我需要明确它们的区别。根据引用1和2,推挽输出的优势在于速度快,驱动能力强,但功耗较高。输出的优点则是可以实现“线与”逻辑,节省电流,适用于多设备总线的情况,比如I2C通信。此外,输出的高电平依赖于上拉电阻,因此在电平转换时更灵活,比如将3.3V转换为5V系统。 关于应用场景,推挽输出适合需要快速切换和高驱动能力的场合,如PWM、UART等。而输出常用于需要多个设备共享总线的系统,比如I2C、SMBus,以及需要电平转换的情况。引用3中提到,复用功能时,比如I2C必须使用输出,而UART或PWM则需要推挽输出以确保高速电平变化。 在电路设计上,推挽输出内置驱动电路,无需额外元件,而输出需要外接上拉电阻。这一点在引用2和3中都有提到,尤其是输出多个设备共享上拉电阻的情况,实现线与功能。 需要确保回答结构清晰,分点说明区别和应用场景,并引用提供的资料作为支持。同时,按照用户要求,使用中文回答,正确使用LaTeX格式,比如在提到电压转换时使用$3.3\text{V}$。最后生成相关问题,帮助用户进一步学习。 检查是否有遗点,比如推挽输出的双晶体管结构,输出的单晶体管加上拉电阻,以及两者的功耗对比。确保每个部分都有引用标注,例如[^1]、[^2]、[^3]。最后,验证所有技术细节是否正确,比如电平转换的例子是否符合实际应用。</think>### 输出推挽输出的区别及应用场景 #### 一、核心区别 1. **输出结构** - **推挽输出**:内部包含一对互补的晶体管(上拉和下拉),可主动输出高电平(通过上管)或低电平(通过下管),形成“推”和“挽”两种驱动方式[^1]。 - **输出**:仅包含下拉晶体管(如N-MOSFET),输出高电平时需依赖外接上拉电阻,自身只能主动拉低电平[^2]。 2. **电平特性** - 推挽输出可直接输出确定的高/低电平(例如$3.3\text{V}$和$0\text{V}$)。 - 输出的高电平由上拉电阻的电源决定,例如通过外部$5\text{V}$电源实现电平转换[^2]。 3. **功耗与速度** - 推挽输出切换速度快(双管驱动),但功耗较高; - 输出功耗较低(仅单管导通),但上升沿速度受上拉电阻影响[^2]。 4. **逻辑功能** - 输出支持“线与”逻辑:多个设备共享总线时,任一设备拉低电平即总线为低,无需额外逻辑门[^2]。 #### 二、应用场景 1. **推挽输出的典型场景** - **高速信号**:如PWM波、UART通信,需快速切换电平的场合[^3]。 - **驱动大电流负载**:如LED、继电器,利用其强驱动能力。 - **单设备输出**:无需多设备共享总线时,优先使用推挽以提高性能。 2. **输出的典型场景** - **多设备总线**:如I²C、SMBus,利用“线与”特性简化总线仲裁。 - **电平转换**:通过外接不同电压的上拉电阻,实现$3.3\text{V}$与$5\text{V}$系统兼容。 - **安全关键场景**:避免多个输出冲突(如多个输出连接时,不会因同时输出高/低电平而短路)。 #### 三、电路设计要点 - **推挽电路**:无需外部元件,直接连接负载。 - **电路**:必须外接上拉电阻(阻值需平衡速度和功耗),例如I²C总线常用$4.7\text{k}\Omega$电阻。 ---
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值