对上拉下拉电阻的作用作个总结(想了解的过来看看)(转载)

转自:http://www.amobbs.com/thread-5475279-1-3.html

一、定义:
上拉就是将不确定的信号通过一个电阻嵌位在高电平!电阻同时起限流作用!下拉同理!
上拉是对器件注入电流,下拉是输出电流;弱强只是上拉电阻的阻值不同,没有什么严格区分;对于非集电极(或漏极)开路输出型电路(如普通门电路)提升电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路输出电流通道。
二、上下拉电阻作用:
1、提高电压准位:a.当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V), 这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。b.OC门电路必须加上拉电阻,以提高输出的搞电平值。
2、加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。
3、N/A pin防静电、防干扰:在COMS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗, 提供泄荷通路。同時管脚悬空就比较容易接受外界的电磁干扰。
4、电阻匹配,抑制反射波干扰:长线传输中电阻不匹配容易引起反射波干扰,加上下拉电阻是电阻匹配,有效的抑制反射波干扰。
5、预设空间状态/缺省电位:在一些 CMOS 输入端接上或下拉电阻是为了预设缺省电位. 当你不用这些引脚的时候, 这些输入端下拉接 0 或上拉接 1。在I2C总线等总线上,空闲时的状态是由上下拉电阻获得
6. 提高芯片输入信号的噪声容限:输入端如果是高阻状态,或者高阻抗输入端处于悬空状态,此时需要加上拉或下拉,以免收到随机电平而影响电路工作。同样如果输出端处于被动状态,需要加上拉或下拉,如输出端仅仅是一个三极管的集电极。从而提高芯片输入信号的噪声容限增强抗干扰能力。
{电源到元件间的叫上拉电阻,作用是平时使该脚为高电平 
地到元件间的叫下拉电阻,作用是平时使该脚为低电平 
上拉电阻和下拉电阻的范围由器件来定(我们一般用10K) 
+Vcc 
+------+=上拉电阻 
|+-----+ 
|元件| 
|+-----+ 
+------+=下拉电阻 
-Gnd 
一般来说上拉或下拉电阻的作用是增大电流,加强电路的驱动能力 
比如说51的p1口 
还有,p0口必须接上拉电阻才可以作为io口使用 
上拉和下拉的区别是一个为拉电流,一个为灌电流 
一般来说灌电流比拉电流要大 
也就是灌电流驱动能力强一些}
三、上拉电阻阻值的选择原则包括:
1、从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小。
2、从确保足够的驱动电流考虑应当足够小;电阻小,电流大。
3、对于高速电路,过大的上拉电阻可能边沿变平缓。综合考虑
以上三点,通常在1k到10k之间选取。对下拉电阻也有类似道理
四、原理:
上拉电阻实际上是集电极输出的负载电阻。不管是在开关应用和模拟放大,此电阻的选则都不是拍脑袋的。工作在线性范围就不多说了,在这里是讨论的是晶体管是开关应用,所以只谈开关方式。找个TTL器件的资料单独看末级就可以了,内部都有负载电阻根据不同驱动能力和速度要求这个电阻值不同,低功耗的电阻值大,速度快的电阻值小。但芯片制造商很难满足应用的需要不可能同种功能芯片做许多种,因此干脆不做这个负载电阻,改由使用者自己自由选择外接,所以就出现OC、OD输出的芯片。由于数字应用时晶体管工作在饱和和截止区,对负载电阻要求不高,电阻值小到只要不小到损坏末级晶体管就可以,大到输出上升时间满足设计要求就可,随便选一个都可以正常工作。但是一个电路设计是否优秀这些细节也是要考虑的。集电极输出的开关电路不管是开还是关对地始终是通的,晶体管导通时电流从负载电阻经导通的晶体管到地,截止时电流从负载电阻经负载的输入电阻到地,如果负载电阻选择小点功耗就会大,这在电池供电和要求功耗小的系统设计中是要尽量避免的,如果电阻选择大又会带来信号上升沿的延时,因为负载的输入电容在上升沿是通过无源的上拉电阻充电,电阻越大上升时间越长,下降沿是通过有源晶体管放电,时间取决于器件本身。因此设计者在选择上拉电阻值时,要根据系统实际情况在功耗和速度上兼顾。
3.从IC(MOS工艺)的角度,分别就输入/输出引脚做一解释:
1. 对芯片输入管脚, 若在系统板上悬空(未与任何输出脚或驱动相接)是比较危险的.因为此时很有可能输入管脚内部电容电荷累积使之达到中间电平(比如1.5V), 而使得输入缓冲器的PMOS管和NMOS管同时导通, 这样一来就在电源和地之间形成直接通路, 产生较大的漏电流, 时间一长就可能损坏芯片. 并且因为处于中间电平会导致内部电路对其逻辑(0或1)判断混乱. 接上上拉或下拉电阻后, 内部点容相应被充(放)电至高(低)电平, 内部缓冲器也只有NMOS(PMOS)管导通, 不会形成电源到地的直流通路. (至于防止静电造成损坏, 因芯片管脚设计中一般会加保护电路, 反而无此必要).
2. 对于输出管脚:
1)正常的输出管脚(push-pull型), 一般没有必要接上拉或下拉电阻.
2)OD或OC(漏极开路或集电极开路)型管脚,
这种类型的管脚需要外接上拉电阻实现线与功能(此时多个输出可直接相连. 典型应用是: 系统板上多个芯片的INT(中断信号)输出直接相连, 再接上一上拉电阻, 然后输入MCU的INT引脚, 实现中断报警功能).
其工作原理是: 
在正常工作情况下, OD型管脚内部的NMOS管关闭, 对外部而言其处于高阻状态, 外接上拉电阻使输出位于高电平(无效中断状态); 当有中断需求时, OD型管脚内部的NMOS管接通, 因其导通电阻远远小于上拉电阻, 使输出位于低电平(有效中断状态). 针对MOS 电路上下拉电阻阻值以几十至几百K为宜.
(注: 此回答未涉及TTL工艺的芯片, 也未曾考虑高频PCB设计时需考虑的阻抗匹配, 电磁干扰等效应.)
1, 芯片引脚上注明的上拉或下拉电阻, 是指设计在芯片引脚内部的一个电阻或等效电阻. 设计这个电阻的目的, 是为了当用户不需要用这个引脚的功能时, 不用外加元件, 就可以置这个引脚到缺省的状态. 而不会使 CMOS 输入端悬空. 使用时要注意如果这个缺省值不是你所要的, 你应该把这个输入端直接连到你需要的状态.
2, 这个引脚如果是上拉的话, 可以用于 "线或" 逻辑. 外接漏极开路或集电极开路输出的其他芯片. 组成负逻辑或输入. 如果是下拉的话, 可以组成正逻辑 "线或", 但外接只能是 CMOS 的高电平漏极开路的芯片输出, 这是因为 CMOS 输出的高, 低电平分别由 PMOS 和 NMOS 的漏极给出电流, 可以作成 P 漏开路或 N 漏开路. 而 TTL 的高电平由源极跟随器输出电流, 不适合 "线或".
3, TTL 到 CMOS 的驱动或反之, 原则上不建议用上下拉电阻来改变电平, 最好加电平转换电路. 如果两边的电源都是 5 伏, 可以直接连但影响性能和稳定, 尤其是 CMOS 驱动 TTL 时. 两边逻辑电平不同时, 一定要用电平转换. 电源电压 3 伏或以下时, 建议不要用直连更不能用电阻拉电平.
4, 芯片外加电阻由应用情况决定, 但是在逻辑电路中用电阻拉电平或改善驱动能力都是不可行的. 需要改善驱动应加驱动电路. 改变电平应加电平转换电路. 包括长线接收都有专门的芯片.

转载于:https://www.cnblogs.com/dirichlet/p/3627543.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/377173.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

给用户传入的变量进行转义操作

先看代码实现: /* 对用户传入的变量进行转义操作。*/ if (!get_magic_quotes_gpc()) {if (!empty($_GET)){$_GET addslashes_deep($_GET);}if (!empty($_POST)){$_POST addslashes_deep($_POST);}$_COOKIE addslashes_deep($_COOKIE);$_REQUEST addslashes_…

《MySQL——外部检测与内部统计 判断 主库是否出现问题》

目录select1判断查表判断更新判断外部检测弊端内部统计一主一备的双M架构里,主备切换只需要把客户端流量切换到备库。 在一主多从的架构里,主备切换要把客户端流量切换到备库,也需要把从库接到新主库上。 切换有两种场景:1、主动…

NIM的完整形式是什么?

NIM:无内部消息 (NIM: No Internal Message) NIM is an abbreviation of "No Internal Message". NIM是“无内部消息”的缩写。 It is an expression, which is commonly used in the Gmail platform. It is written in the subject of the mail, if the…

[Json] C#ConvertJson|List转成Json|对象|集合|DataSet|DataTable|DataReader转成Json (转载)...

点击下载 ConvertJson.rar 本类实现了 C#ConvertJson|List转成Json|对象|集合|DataSet|DataTable|DataReader转成Json|等功能大家先预览一下 请看代码 /// <summary> /// 类说明&#xff1a;Assistant /// 编 码 人&#xff1a;苏飞 /// 联系方式&#xff1a;361983679 …

let 只能在严格模式下吗_LET的完整形式是什么?

let 只能在严格模式下吗LET&#xff1a;今天早早离开 (LET: Leaving Early Today) LET is an abbreviation of "Leaving Early Today". LET是“ Leaveing Today Today”的缩写 。 It is an expression, which is commonly used in the Gmail platform. It is writt…

js 遮罩层 loading 效果

//调用方法 //关闭事件<button οnclickLayerHide()>关闭</button>&#xff0c;在loadDiv(text)中&#xff0c;剔除出来 //调用LayerShow(text)&#xff0c;text为参数&#xff0c;可以写入想要写入的提示语 //本方法在调用时会自动生成一个添加到body的div&#x…

centos6.5安装配置LDAP服务[转]

centos6.5安装配置LDAP服务[转] 安装之前查一下 1find / -name openldap*centos6.4默认安装了LDAP&#xff0c;但没有装ldap-server和ldap-client 于是yum安装 1su root2yum install -y openldap openldap-servers openldap-clients不建议编译源码包&#xff0c;有依赖比较麻烦…

《MySQL——恢复数据-误删行、表、库》

目录误删行事前预防误删行数据方法误删表/库延迟复制备库事前预防误删库/表方法传统的架构不能预防误删数据&#xff0c;因为主库的一个drop table命令&#xff0c;会通过binlog传给所有从库和级联从库&#xff0c;进而导致整个集群的实例都会执行这个命令。 MySQL相关的误删除…

python图例位置_Python | 图例位置

python图例位置Legends are one of the key components of data visualization and plotting. Matplotlib can automatically define a position for a legend in addition to this, it allows us to locate it in our required positions. Following is the list of locations…

Freemarker中遍历List实例

Freemarker中如何遍历List摘要&#xff1a;在Freemarker应用中经常会遍历List获取需要的数据&#xff0c;并对需要的数据进行排序加工后呈现给用户。那么在Freemarker中如何遍历List&#xff0c;并对List中数据进行适当的排序呢&#xff1f;通过下文的介绍&#xff0c;相信您一…

工作总结:文件对话框的分类(C++)

原文地址&#xff1a;http://www.jizhuomi.com/software/173.html 文件对话框分为打开文件对话框和保存文件对话框&#xff0c;相信大家在Windows系统中经常见到这两种文件对话框。例如&#xff0c;很多编辑软件像记事本等都有“打开”选项&#xff0c;选择“打开”后会弹出一个…

《MySQL——Innodb改进LRU算法》

Innodb改进LRU.算法&#xff0c;实质上将内存链表分成两段。 靠近头部的young和靠近末尾的old&#xff0c;取5/12段为分界。 新数据在一定时间内只能在old段的头部&#xff0c;当在old段保持了一定的时间后被再次访问才能升级到young。 实质上是分了两段lru&#xff0c;这样做的…

nfc/nfc模式_NFC的完整形式是什么?

nfc/nfc模式NFC&#xff1a;没有进一步评论 (NFC: No Further Comment) NFC is an abbreviation of "No Further Comment". NFC是“没有进一步评论”的缩写 。 It is an expression, which is commonly used in messaging or chatting on social media networking s…

dx小记(2)

1.构造一个平截台体&#xff08;Frustum&#xff09; 最近距离-projMatirx.43/projMatrix.33 projMatrix。33 深度/&#xff08;深度-最近距离&#xff09; projMatrix。44-最近距离*&#xff08;深度/&#xff08;深度-最近距离&#xff09;&#xff09; FrustumMatrix proje…

jQuery: 整理4---创建元素和添加元素

1.创建元素&#xff1a;$("内容") const p "<p>这是一个p标签</p>" console.log(p)console.log($(p)) 2. 添加元素 2.1 前追加子元素 1. 指定元素.prepend(内容) -> 在指定元素的内部的最前面追加内容&#xff0c;内容可以是字符串、…

Design a high performance cache for multi-threaded environment

如何设计一个支持高并发的高性能缓存库 不 考虑并发情况下的缓存的设计大家应该都比较清楚&#xff0c;基本上就是用map/hashmap存储键值&#xff0c;然后用双向链表记录一个LRU来用于缓存的清理。这篇文章 应该是讲得很清楚http://timday.bitbucket.org/lru.html。但是考虑到高…

《MySQL——join语句优化tips》

目录要不要用joinJoin驱动表选择Multi-Range Read优化Batched Key Access &#xff08;BKA&#xff09;对NLJ进行优化BNL算法性能问题BNL转BKA要不要用join 1、如果使用的是Index Nested-Loop Join算法&#xff0c;即可以用上被驱动表的索引&#xff0c;可以用 2、如果使用的…

scala中抽象类_Scala中的抽象类

scala中抽象类抽象类 (Abstract Class) In the Scala programming language, abstraction is achieved using abstract class. 在Scala编程语言&#xff0c; 抽象是使用抽象类来实现的。 Abstraction is the process of showing only functionality and hiding the details fr…

不能catch Fatal的exception

Clemens Vasters - Are you catching falling knives?里给了一个判断C#的exception是不是fatal的代码&#xff0c;可以参考参考。 public static bool IsFatal(this Exception exception) {while (exception ! null){if (exception as OutOfMemoryException ! null &&…

HDU 2824 The Euler function

筛法计算欧拉函数 #include <iostream> #include <cstdio> using namespace std; const int maxn3000005; long long phi[maxn]; int main(){int i,j,a,b;for(i1;i<maxn;i) phi[i]i;for(i2;i<maxn;i2) phi[i]/2;for(i3;i<maxn;i2)if(phi[i]i){for(ji;j<…