上拉电阻和下拉电阻在电路中的作用(一)

embedded/2024/10/23 23:29:07/

上拉电阻和下拉电阻在电路中的作用(一)

  • 1.什么是上下拉电阻
  • 2.上下拉电阻的作用:
    • 2.1.维持输入引脚处于稳定状态。
    • 2.2.配合三极管和MOS进行电平转换电路设计
    • 2.3.OC、OD电路(Open Collector集电极开路、Open Drain漏电极开路)
    • 2.4.总线的IO接口上下拉电阻
    • 2.5.增加输出引脚的驱动能力
    • 2.6.电平标准匹配
    • 2.7.增强电路抗干扰能力

1.什么是上下拉电阻

上拉电阻是把信号通过一个电阻接到电源(VCC),下拉电阻是把信号通过电阻接到地(GND)。

我们经常听说的“强上拉”“弱上拉”,其实强弱只是电阻阻值不同,没有太严格的区分。例如:50Ω上拉电阻称为强上拉电阻,100kΩ上拉电阻成为弱上拉电阻。强拉电阻的极端就是0欧姆电阻,直接将信号线与电源或地相连接。

2.上下拉电阻的作用:

用途广泛,很少有教材对上下拉电阻的应用方法进行总结。
下面是一些常用的使用方法。

2.1.维持输入引脚处于稳定状态。

芯片引脚有3种类型,输出引脚(output,O),输入引脚(input,I),输入输出引脚(input/output,I/O)。输入引脚有3个状态,高电平,低电平和高阻状态。当输入是高阻,即输入引脚悬空时,可能造成输入结果的不定态,引起输出振荡。有些应用场合不希望出现高阻状态,可以通过上拉电阻或下拉电阻时输入引脚处于稳定状态。
在这里插入图片描述

输入引脚的上拉电阻
按键电路设计、复位电路设计等都是这种上下拉电阻,至于具体上拉还是下拉,则取决于需要的默认状态。
在CMOS芯片上,为了防止静电造成损坏,不用的引脚不能悬空,一般通过接上拉电阻来降低输入阻抗,提供泄放电荷的通道。

2.2.配合三极管和MOS进行电平转换电路设计

在这里插入图片描述

三极管和MOS管的基本原理
当Ube小于0.7V时,三极管处于截止状态,不导通,此时输出为高电平
当三极管处于放大或饱和状态时,Ube=0.7V,
R1属于限流电阻,当三极管处于放大或饱和状态时,Ube=0.7V,根据输入电压计算基极的电流,
Ib=(U=0.7V)/R1
若不接限流电阻R1,则当输入电压大于0.7V时,基极的电流大,会烧毁三极管。
R1的电阻阻值大小,需要根据三极管的特性进行计算。例如,三极管放大倍数β为100.

输出电压Vout=Vcc-Ic*Rc
Vout在Ic等于0时,Vout=Vcc=12V,由于是数字电路,Vout需要到达0V附近,,实现低电平的效果。
如果R2选1kΩ,
Ic=(Vcc-0)/R2=12V/1kΩ=12mA 实际上还要考虑Vce之间大约0.3V的压降。

三极管的通流能力有限,根据datasheet进行参考
如果R2选值太小,会导致Ic太大导致三极管烧毁。
根据公式理解饱和的概念会更容易,即集电极电阻越大(或者Ib电流大),越容易饱和。饱和的现象是:两个PN结均正确,Ic不受Ib的控制了,因为Vcc接近GND了,不可能凭空产生负压。

如果要求输入电压为3.3V,设计时三极管处于饱和状态,则Ic(饱和)=12mA ,Ib(min)=Ic(饱和)/β=0.12mA
基极限流电阻R1(max)=(3.3-0.7)/Ib=21.75KΩ。
如果要求输入电压为3.3V,设计时三极管处于饱和状态,并且要考虑三极管放大倍数β、电阻、Vcc电压的离散型、精度、波动等因素,则阻值选择需要留出足够的余量。此时,一般可能选择R1为1KΩ,让三极管足够饱和。另外R1的阻值不能太小,需要考虑Ib的额定电流。另外R1、R2都不能太小的原因是要考虑功耗和节能。

如果把NPN三极管换成NMOS的原理也是一样的,不同的是需要注意GS的电压不同于三极管BE之间的0.7V,一般GS在2V以上,具体设计看datasheet的数据说明。

上图所示的电路是一个反向逻辑电路。
可以连续用两个三极管把逻辑做成正向逻辑电路。此时,R2成为下一级的R1,这种情况下,R2既不能太大,也不能太小,如图所示:
当输入为3.3V时,三极管Q2饱和时,Q2集电极电压为0.3V,小于Q3三极管BE间导通电压0.7V,所以Q3截至,输出为12V为高。
当输入为0V时,三极管Q2截至,Q3基极电压为0.7V,三极管Q3到导通,Q3处于饱和状态,输出通过Q3的CE下拉至0.3V为低。

三极管电平转换电路正相

注意:考虑到三极管的寄生电容,文章中的电路只能做一个对开关速度要求不高的电平转换电路,如果要求转换速度高,建议在三极管的BE端,增加一个2kΩ的电阻并联在BE端

2.3.OC、OD电路(Open Collector集电极开路、Open Drain漏电极开路)

对于OC、OD电路,上拉电阻的功能主要是为集电极开路输出型电路提供输出电流通道。有些芯片的输出引脚继承了三极管或MOS管,但是没有集成上拉电阻到VCC。典型的OC电路,这些引脚其实就是一个集电极,而且是开路,所以称为OC引脚。
在这里插入图片描述
而之所以有OC和OD电路,是为了便于“线与”设计。两个或多个输出信号连接在一起可以实现“线与”的功能,是要一个输入引脚为低电平,就可以使输出为低电平。
在这里插入图片描述

2.4.总线的IO接口上下拉电阻

一些总线总有输入和输出接口,其本质就是OC和OD的接口。
IIC(Inter-Integrated Circuit,内部集成电路)总线就是典型的开漏输出结构。
在这里插入图片描述
IIC接口的SCL(时钟线)和SDA(数据线)都是OD输出结构,这样可以用作双向数据线。有些双向的IO口,其实就是把输入和输出短接到一起,然后把输入和输出做成OC和OD。这样处理不但用一根线实现了双向数据通信,还解决了双向数据同时发送信号带来的数据冲突。
在这里插入图片描述

一般来说,芯片的输出是推挽结构,但是当两个芯片同时输出,一个为高,一个为低的时候,会出现短路情况。工作中称为总线冲突。用OC、OD电路可以避免短路,所以IIC、LPC、PCI等总线采用此电路。当然,有一些IO口不需要外接,因为其芯片中内置了上拉电阻。
对于IIC总线,当总线上有多个芯片时,不管各个芯片的引脚输出什么状态,都不会因为短路引起数据冲突。利用各自芯片内部的数据识别电路及仲裁系统,各个芯片都可以主动给另一方发送消息。任何一方都可以将总线拉低,不拉低时就是释放总线。

2.5.增加输出引脚的驱动能力

芯片的输出引脚本身不是OC、OD电路,但有时候也会增加一个上拉或者下拉电阻,通过上拉或下拉来增加或减小驱动电流。
例如,一个单片机的IO口内部有一个几十千欧的电阻,其最大输出电流也就250uA。因此,当增加一个上拉电阻时,可以形成和内部上拉电阻并联的结构,增加高电平时电流的输出能力。在负载增大时,能保持足够的电压。

2.6.电平标准匹配

用于不同标准之间电平的匹配,最常见的就是TTL和CMOS电平之间的匹配。当TTL电路驱动CMOS电路时,若TTL电路的高电平低于CMOS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端加上拉电阻,以提高输出高电平值。需要注意的是,此时上拉电阻连接的电压值应不低于CMOS电路的最低高电压,同时要考虑TTL电路的电流(如某端口最大输入或输出电流)的影响。

2.7.增强电路抗干扰能力

芯片的引脚加上拉电阻可以提高输出电平,从而提高芯片输入信号的噪声容限,增强抗干扰能力。在长线传输中,电阻不匹配容易引起反射波干扰,可以通过加上拉或下拉电阻进行匹配,从而有效地抑制反射波干扰。在总线传输过程中,悬空引脚比较容易受外界的电磁干扰,加上拉电阻可以提高总线的抗干扰能力。


http://www.ppmy.cn/embedded/129927.html

相关文章

开源的存储引擎--cantian

cantian 上次稼先社会活动之后,在北京签售的时候见到了三位参天的核心人物。我有感于他们的热情、务实和坦诚,我觉得还应该在深入的做一些事情。至少可以安装体验一下,做做推广。毕竟现在务实的产品不多了,很多都是浮躁的宣传。为…

vuex3入门

vue2 对应的 vuex、vue-router 都为3. 项目创建与框架安装 vue create hellovuex3 npm i vuex3 npm install npm run serve vuex使用 vue集成vuex,数据更新&展示 新建store/index.js import Vue from vue import Vuex from vuexVue.use(Vuex)const store n…

IT运维的365天--017 如何在两台Linux服务器之间快速批量传输文件夹(同时设置免密)

前情提要(两台Linux服务器之间传输批量文件夹): 两台都是外网服务器,都是Linux系统(CentOS),都安装了宝塔,用于搭建巨量的静态网站,由于A服务器准备不要了,所以要在A服务器转移几百个静态网站到B服务器。 Linux下scp单命令传输文件夹测试: 准备工作,先测试转移一…

Cursor零基础小白教程系列 - 开卷有益

最适合小白零基础的Cursor教程 网站lookai.top相同作者,最新文章会在网站更新,欢迎收藏书签 写在前面的话 Cursor在我看来 我认为当下AI时代,Cursor能够极大赋能每个普通人,帮助每个普通人实现自己的创意和想法。 例子&#xff…

Flink时间窗口程序骨架结构

前言 Flink 作业的基本骨架结构包含三部分:创建执行环境、定义数据处理逻辑、提交并执行Flink作业。 日常大部分 Flink 作业是基于时间窗口计算模型的,同样的,开发一个Flink时间窗口作业也有一套基本的骨架结构,了解这套结构有助…

【C++刷题】力扣-#268-丢失的数字

题目描述 给定一个包含从 1 到 n 的整数的数组 nums,其中 n 是数组的长度。数组中的元素都不相同,但是缺失了一个数字,导致数组和为 n*(n1)/2 减去的某个数字。找出这个缺失的数字。 示例 示例 1 输入: nums [3,0,1] 输出: 2示例 2 输入:…

Vivado - Aurora 8B/10B IP

目录 1. 简介 2. 设计调试 2.1 Physical Layer 2.2 Link Layer 2.3 Receiver 2.4 IP 接口 2.5 调试过程 2.5.1 Block Design 2.5.2 释放 gt_reset 2.5.3 观察数据 3. 实用技巧 3.1 GT 坐标与布局 3.1.1 选择器件并进行RTL分析 3.1.2 进入平面设计 3.1.3 收发器布…

git提交信息写错处理方式

在Git中,你可以通过使用rebase命令来合并提交记录。以下是一个简单的步骤来合并一系列提交: 使用git rebase -i开始交互式变基。在打开的编辑器中,你会看到一个提交列表。若要合并提交,将要合并的提交前面的pick改为squash或s。保…