当前位置: 首页 > news >正文

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

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

  • 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.增强电路抗干扰能力

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

相关文章:

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

上拉电阻和下拉电阻在电路中的作用(一) 1.什么是上下拉电阻2.上下拉电阻的作用:2.1.维持输入引脚处于稳定状态。2.2.配合三极管和MOS进行电平转换电路设计2.3.OC、OD电路(Open Collector集电极开路、Open Drain漏电极开路&#xf…...

怎么轻松把图片存入二维码?图片生成二维码的简单3步技巧

进入数字化时代,图片是目前应用广泛的一种信息传递方式,可以通过看图来获取需要的内容,那么图片如何更快捷的在更多人之间传递呢?通过将图片生成二维码后分享,可以实现图片的快速传递,制作成本也比较低&…...

perl双引号内字符串的反斜线转义

perl双引号内字符串的反斜线转义 如题,下面表格列举了perl双引号内字符串的反斜线转义: 组合意义\n换行\r回车\t水平制表符\f换页符\b退格\a系统响铃\eEsc(ASCII编码的转义字符)\007八进制表示的ASCII值(此例中007表…...

【编程语言】Kotlin快速入门 - 伴生对象与懒加载

静态与顶层方法 静态方法(伴生对象) Java中有静态方法的概念,但是在Kotlin中这个静态方法被弱化了,还记得我们使用object创建一个单例类吗,创建的单例类我们当时可以使用像静态方法一样的调用方式取调用,…...

三、数据聚合和函数

在数据聚合和函数方面,数据库提供了许多功能强大的函数,可以帮助你处理和分析数据。以下是一些常用的函数及其功能的详细说明: COUNT函数: COUNT函数用于计算指定列中的行数。它可以用于统计表中满足特定条件的行数,也…...

Golang | Leetcode Golang题解之第500题键盘行

题目: 题解: func findWords(words []string) (ans []string) {const rowIdx "12210111011122000010020202" next:for _, word : range words {idx : rowIdx[unicode.ToLower(rune(word[0]))-a]for _, ch : range word[1:] {if rowIdx[unico…...

如何实现金蝶商品数据集成到电商系统的SKU

如何实现金蝶商品数据集成到电商SKU系统 金蝶商品数据集成到电商SKU的技术实现 在现代企业的数据管理中,系统间的数据对接与集成是提升业务效率和准确性的关键环节。本文将分享一个实际案例:如何通过轻易云数据集成平台,将金蝶云星辰V2中的商…...

100种算法【Python版】第4篇——回溯法

念念不忘,必有回响 1 回溯法原理2 示例说明2.1 生成子集2.1.1 回溯法思路2.1.2 Python3代码2.2 N皇后问题2.2.1 回溯法思路2.2.2 Python3代码3 回溯法应用3.1 组合3.1.1 回溯法思路3.1.2 Python3代码3.2 数独 Solver3.2.1 回溯法思路3.2.2 Python3代码3.3 多重背包问题3.3.1 P…...

R语言机器学习算法实战系列(九)决策树分类算法 (Decision Trees Classifier)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍教程下载数据加载R包导入数据数据预处理数据描述数据切割调节参数构建模型模型的决策树预测测试数据评估模型模型准确性混淆矩阵模型评估指标ROC CurvePRC Curve特征的重要性保存模…...

听泉鉴宝在三个月前已布局商标注册!

近日“听泉鉴宝”以幽默的风格和节目效果迅速涨粉至2500多万,连线出现“馆藏文物”和“盗墓现场”等内容,听泉鉴宝早在几个月前已布局商标注册。 据普推知产商标老杨在商标局网站检索发现,“听泉鉴宝”的主人丁某所持股的江苏灵匠申请了三十…...

vscode设置特定扩展名文件的打开编码格式

用vscode 编辑c语言或者Verilog代码, 由于其它开发工具的文件编码格式无法修改,默认只能是gb2312, 与我们国内奉行的统一 utf8 不一致. 所以只能是更改特殊文件的打开方式. 配置方式如下. 关键配置如下: {"git.openRepositoryInParentFolders": "never",…...

Linux——动态卷的管理

确保已经设置了对应的动态卷的驱动(provisioner 制备器)基于动态驱动创建对应的存储类创建PVC (PVC 将会自动根据大小、访问模式等创建PV)Pod的spec 中通过volumes 和 volumemounts 来完成pvc 的绑定和pvc对应pv的挂载删除pod 不…...

第三季度中国游戏市场收入创历史新高;京东物流与淘宝天猫达成合作;YouTube 上线“用相机拍摄”标签....|网易数智日报

第三季度中国游戏市场收入917.66亿,创历史新高 中国音数协游戏工委今日发布了最新的 2024 年第三季度中国游戏产业季度报告。 数据显示,2024 年第三季度中国游戏市场收入 917.66 亿元,环比增长 22.96%,同比增长 8.95%。 中国音…...

智慧城管综合管理系统源码,微服务架构,基于springboot、vue+element+uniapp技术开发,支持二次开发

智慧城管源码,智慧城管执法办案系统源码 智慧城管综合执法办案平台是智慧城市框架下,依托物联网、云计算、多网融合等现代化技术,运用数字基础资源、多维信息感知、协同工作处置、智能化辅助决策分析等手段,形成具备高度感知、互联…...

2024Flutter面试题

1.Dart是值传递还是引用传递? dart是值传递。 每次调用函数,传递过去的都是对象的内存地址,而不是这个对象的赋值。 2.简述Dart语音特性 在Dart中,一切都是对象,所有的对象都是继承自Object Dart是强类型语言&#…...

MySQL-23.多表查询-内连接

一.内连接 -- 多表查询 select * from tb_emp,tb_dept where tb_emp.dept_id tb_dept.id;-- 内连接 -- A.查询员工的姓名,及所属的部门名称(隐式内连接实现) select tb_emp.name as 员工姓名,tb_dept.name as 部门名称 from tb_emp,tb_dep…...

实用的 Python 小脚本

一、引言 在日常办公和电脑使用中,我们经常会遇到一些重复性的任务或需要快速获取特定信息的情况。Python 作为一种强大而灵活的编程语言,可以用来编写各种小脚本,以自动化这些任务并提高工作效率。本文将介绍一些 Python 常用的小脚本&…...

哪种掏耳朵方式好?正确的掏耳工具!

人体的耳屎会随着活动量加大而增加,如果长期不清理,耳屎堆积在耳道深处很有可能会堵塞鼓膜甚至影响听力。但如果需要清理耳屎的话,哪种掏耳朵方式好呢?可视挖耳勺可以帮助我们在全程可视的情况下,精准有效地完成采耳&a…...

如何让别人喜欢你的代码

良好的编码习惯是编程人员的基本素养,有利于后期人员的维护和查看。 毕竟大家都喜欢美女和靓仔 目录 js函数注释规范 案例 其他 推荐链接 js函数注释规范 常用符号 说明 用法 param 参数 param {type} name return 返回值 return {type} 案例 /***…...

【Flutter】Dart:库

在 Dart 中,库(Library)是组织和重用代码的基本方式。通过库,我们可以将代码分割成模块化的部分,方便管理和共享,同时避免命名冲突。Dart 提供了大量内置库,用于支持常见的功能,比如…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...