上下拉电阻会增强驱动能力吗?

news2024/11/26 18:53:29

最近看到一个关于上下拉电阻的问题,发现不少人认为上下拉电阻能够增强驱动能力。随后跟几个朋友讨论了一下,大家一致认为不存在上下拉电阻增强驱动能力这回事,因为除了OC输出这类特殊结构外,上下拉电阻就是负载,只会减弱驱动力。

但很多经验肯定不是空穴来风,秉承工程师的钻研精神,我就试着找找这种说法的来源,问题本身很简单,思考的过程比较有趣。

 二极管逻辑 

今天已经很难看到二极管逻辑电路了,其实用性也不算高,不过因为电路简单,非常适合用来理解基本概念。

一个最简单的二极管与门如下图。与门实现逻辑与操作Y=A&B,即A或者B任意为L的时候,输出Y为L,只有当A和B都为H时,Y才为H。

图片

    上图,基本二极管与门

假设二极管无导通压降,在这个电路中,二极管充当了单向开关的角色,当A和B等于VDD时,两根二极管反向截至,Y被电阻上拉到VDD,这是Y就是H;当A或者B任意一端为GND时,二极管导通,因为二极管导通时电阻很小,远小于上拉电阻,所以Y被拉到了GND,即逻辑L。

至于二极管或门,只要把二极管转一下,再把电阻从拉到VDD改成拉到GND就可以了,非常简单。

图片

    上图,基本二极管或门

 基本原理 

你看,在这么原始的逻辑电路中就已经出现了上下拉电阻,这里面的原理也非常简单粗暴:利用开关的闭合(电阻为0)和开启(电阻无穷大)的特性,配合电阻,就可以轻松实现两种电压的输出。这种电路还有一个变形,就是用恒流源取代电阻,一方面集成电路工艺,恒流源比电阻更容易获得,另一方面恒流源的驱动能力也更好。根据开关和电阻(或恒流源)的相对位置,有以下基本电路:即开关接到GND(L)或开关接到VDD(H)。

图片

上图,几种开关电路接法。

这几种电路都是由开关的闭合或开启决定了VOUT是VDD还是GND。开关的相对位置不同,还决定了电路在某一状态下的驱动能力:开关的导通电阻为0,可视为驱动力无穷大,可是电阻(或恒流源)的驱动能力呢,只有VDD/R(或者恒流I),这就导致了电路在输出H或L的时候驱动能力不对称(换一个说法,就是电路在输出H或者L的时候,输出阻抗不一样)。

除了驱动能力的问题,这种单开关加电阻的模式还会带来静态功耗的问题,因为只要开关闭合,不管外部有没有负载,都会消耗电流。

既然开关的驱动力比电阻强,那么能不能把电阻也换成开关?恭喜你,发现了现代CMOS逻辑电路的基本单元:俩互补的开关。这样不管输出H还是输出L,驱动能力都是无穷大!好的,这时候上下拉电阻就不见了。

这样两个开关的电路还多出来了一种状态:当两个开关都开启时,VOUT即不是VDD也不是GND,而是一个悬空的状态(即高阻态,Hi-Z),这时候外部给什么信号它就是什么状态。这样又出现了一个新的逻辑门大类:三态逻辑门。

图片

    上图,互补开关电路。

 上下拉电阻增强驱动能力? 

很多经验不是空穴来风,只是在流传的过程中丢失了重要的前提条件。上一节也看到了有一些逻辑器件,他们输出高和输出低时的驱动能力差别很大。

TTL(70xx、74Fxx、74Sxx、74LSxx等)家族的器件就属于这种类型,如下图是7404(TTL反相器)的原理图,由于非对称的输出级设计,输出为高时驱动能力只有0.4mA,而输出低时居然能输出16mA的电流(手册中的输出电流不是晶体管或者电路本身的极限,而是超过这个电流以后,输出的电压可能无法满足逻辑族的要求)。

图片

    上图,7404的简化电路。

这个时候在输出端口外加一个上拉电阻,就可等效以增强端口在输出H时的驱动能力,但代价是端口输出L时,驱动能力相应地减弱,不过这时候芯片输出能力足够强,用这点代价来换取另一个状态下驱动能力的增强,还是划算。

图片

    上图,带上拉电阻的7404。

下表是仿真有无上拉电阻时,负载电流与输出电压的关系,可以看到上拉电阻确实增强了在一定负载下的输出电压,不过当负载电流较大时效果并不明显,而且边际效应也很显著,当上拉电阻减小到一定程度以后,增强效果也不太显著,而且会大大增加静态功耗。

图片

    上表,带不同上拉电阻的7404输出电压与负载电流的关系。

既然非对称的输出级有这样的问题,那为啥不能把这个驱动器设计成上下对称的呢?

一方面,如果要设计成上下对称的结构,上管需要用P管,而当时的工艺限制,P管各方面性能都不如N管,速度、功耗和成本都不是很划算,所以能看到很多上年代的芯片,内部几乎没有P管(包括MOS工艺的器件也是)。

另一方面,TTL输入结构的特点,输入为H时所需电流很小,而输入为L所需的输入电流很大,这样对输出L时的驱动能力要求就很高,反而对输出H时没有驱动能力要求(TTL输入悬空时等效为H)。

但TTL的这种特点,又会带来一个比较麻烦的问题:下拉电阻值需要很大才能满足要求,而下拉电阻太大则会导致输出高时负载太重以至于无法达到规定电压,所以TTL要尽量避免使用下拉。

下图是仿真结果,因为这是一个反相器,所以下拉时输出高是所期望的,而下拉电阻超过1.8kΩ时已经无法满足TTL定义的最低高电平标准了;而上拉时,就算上拉电阻达到20kΩ,也丝毫不影响输出。

图片

    上表,TTL上下拉电阻取值与输出电压的关系。

 CMOS电路 

相信现在已经没多少人会在设计时选用TTL家族的器件了,可能多数人都没接触过这类器件,最常用的还是CMOS家族(HC、HCT、LVC、CD4000等)。

CMOS家族的东西就比较简单粗暴,上下对称的结构,上下管驱动能力也基本一致,这个时候输出的上下拉电阻对增强驱动能力几乎没有帮助不说,还加重了负载,属于得不偿失(其实多数情况下是无关痛痒)。

下图是基本的CMOS反相器,只需要一对互补的MOS管即可实现(现实中的CMOS反相器一般是三对这种管子级联出来的,为了提高开环增益)。

图片

但是CMOS器件的输入悬空时,不会被拉向任何一个方向,处于一种浮空的状态,这样会造成输出紊乱,不是我们所希望的结果,这种情况下需要在输入端接入上拉或者下拉电阻给电路提供一个确定的状态。一般可拔插的对外接口(如JTAG)需要在I/O上加上上下拉电阻,有三态的总线视工作情况也可能需要上下拉,不过大多数的CMOS电路不需要额外的上下拉电阻。

图片

    上图,CMOS器件在使用是一般要加上下来避免输入悬空。

因为CMOS输入是电压控制型,输入阻抗很高,所以上下拉电阻的值可以很大,理论上用MΩ级别的电阻都没问题。

不过理论归理论,工程师得认清现实。现实的CMOS输入结构,为了保护MOS管的栅极,会在栅极上加入ESD二极管,二极管反向偏置的时候是有漏电流的,还会随温度的升高还会指数增长!所以CMOS电路的上下拉电阻一般在100kΩ以下,一些制程比较先进的CPU,I/O口的漏电流或者上下拉电流较大,上下拉电阻一般取在几kΩ级别。所以设计上下拉电阻前一定要仔细阅读芯片手册,查查I/O的输入电流,看看取什么样的电阻值才合理。

图片

    上图,CMOS输入有ESD二极管。

 其他需要上下拉的情况 

开集(Open-Collector)和开漏(Open-Drain)的输出结构往往也需要加上拉电阻:理清推挽、开漏、OC、OD的特点与应用。OC和OD输出结构只有下管,所以只能输出L和高阻(Hi-Z)两种状态,而高阻态是难以被电路识别的,所以需要合适的上拉电阻把高阻态转变为高态。

图片

上图,OC(左)和OD(右)输出结构。

虽然OC和OD输出结构看起来很复古,使用时也需要外接电阻有点麻烦,但这种结构最大的好处就是可以做线与,也就是多个OC或者OD可以接到一起,只要其中一个输出L,总线就是L,这在多外设中断和电源时序控制方面很常用。

图片

上图,OC/OD的线与接法。

I2C也是OC/OD结构,这样很轻松就能在一条数据线上双向传输数据而不需要额外的方向控制信号,而CAN总线则巧妙地利用线与特性来实现总线仲裁。

在处理OC或者OD电路的时候,一定要注意评估总线负载电容、上拉电阻与所需速度的关系,负载电容越大,速度越快,所需的上拉电阻要越小:通俗理解STM32中的上/下拉电阻。比如I2C总线,如果只挂载了一片从设备,使用4.75kΩ的上拉电阻可能就满足400kHz的总线要求了,但如果挂了10片从设备呢,1kΩ的上拉电阻也不一定能搞定100kHz的总线速度,这种时候可能得考虑总线负载隔离或者降低总线速度了。

下图是在200pF负载电容情况下,上拉电阻为500Ω、1kΩ、2kΩ、4.75kΩ和10kΩ下的波形,可以看到上拉电阻越大,对电容充电速度越慢,所以上升沿也越慢,当上拉电阻不合适时上升沿已经严重变形,无法保证正常工作。

图片

    上图,OC电路不同上拉电阻对波形的影响。

逻辑反相器可以当成放大器来用!不是开玩笑,我还真见过产品上用这种骚操作的,只需要把反相器接成反向放大器就可以了,不过逻辑器件当线性器件用,性能嘛...

图片

    上图,逻辑反相器(非门)当成线性放大器用。

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

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

相关文章

使用 async/await 是必须避免的陷阱

使用 async/await 是必须避免的陷阱 如果我们使用过 nodejs,那么我们可能已经在 javaSoript 中使用了异步操作。异步任务是一个独立于 JavaSoript 引擎的主线程执行的操作。从本质上讲,这就是应用程序功能没有阻塞的 UI 的原因。 nodejs 的单线程性质&a…

精准测试:提升测试流程的效率与质量

在软件开发的过程中,测试是确保软件质量的关键步骤之一。然而,传统的测试方法往往依赖于测试人员的经验和直觉,效率和准确性存在一定的局限性。为了解决这一问题,精准测试应运而生。精准测试是一种基于数据驱动的测试方法&#xf…

机器学习---使用 EM 算法来进行高斯混合模型的聚类

1. 指定k个高斯分布參数 导包 import math import copy import numpy as np import matplotlib.pyplot as pltisdebug False 全局变量 isdebug可以用来控制是否打印调试信息。当 isdebug 为 True 时,代码中的一些调试信 息将被打印出来,方便进行调试…

执法记录仪、一体化布控球等目前支持的AI智能算法、视频智能分析算法有哪些

一、前端设备实现AI算法 主要是基于安卓的布控球实现,已有的算法包括: 1)人脸;2)车牌;3)是否佩戴安全帽;4)是否穿着工装; 可以支持定制开发 烟雾&#xf…

用友NC JiuQiClientReqDispatch反序列化RCE漏洞复现

0x01 产品简介 用友NC是一款企业级ERP软件。作为一种信息化管理工具,用友NC提供了一系列业务管理模块,包括财务会计、采购管理、销售管理、物料管理、生产计划和人力资源管理等,帮助企业实现数字化转型和高效管理。 0x02 漏洞概述 用友 NC JiuQiClientReqDispatch 接口存在…

File类—递归文件搜索执行脚本文件

文章目录 一、需求分析二、File类2.1 File对象的创建2.2 File判断和获取方法2.3 创建和删除方法2.4 遍历文件夹方法 三、Runtime类—常见api四、递归文件搜索执行脚本文件 一、需求分析 在本篇博客中,我们想通过递归文件的方式,在D:\\判断下搜索QQ.exe这…

老师怎样夸学生

老师夸学生可以从以下几个方面入手: 1. 表扬学生的思维深度和独立思考能力。如果学生在文章中有独特的思考角度和深度的思考,老师可以直接点出来赞扬。 2. 赞美学生的语言表达。如果学生的文章用词精准、文笔流畅,老师可以夸奖学生的语言表达…

【人体解剖学与组织胚胎学】练习一高度相联知识点整理及对应习题

文章目录 [toc]骨性鼻旁窦填空题问答题 关节填空题简答题 胸廓填空题简答题![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/827e7d1db3af42858d8734bb81911fea.jpeg)补充 骨性鼻旁窦 填空题 问答题 关节 填空题 简答题 胸廓 填空题 简答题 补充 第二肋对应胸骨…

ChatGPT哪些行业需要学习?

2023年随着OpenAI开发者大会的召开,最重磅更新当属GPTs,多模态API,未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车…

7天快速学习计算机基础必考八股文day01:计算机网络

day01计算机网络目录一览图 TCP、UDP协议分别属于什么层——OSI七层模型详解请简述HTTP1.0、1.1、2.0的主要区别——HTTP版本详解请简述常见HTTP状态码及含义——HTTP报文详解请简述对称加密、非对称加密的异同——安全传输的基础请简述HTTPS加密认证的过程——TLS技术详解请简…

9.Unity搭建HTTP服务器

搭建HTTP服务器的几种方式 //1.使用别人做好的HTTP服务器软件,一般作为资源服务器时使用该方式(学习阶段建议使用) //2.自己编写HTTP服务器应用程序,一般作为Web服务器 或者 短链接游戏服务器时 使用该方式 使用别人做好的HTTP服…

JDK8升级11常见问题

JDK8升级11常见问题 1. 使用rt.jar/jce.jar情况 原代码&#xff1a; <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><targe…

P=NP?

背景&#xff1a;   2000年5月24日&#xff0c;新罕布什尔州的克莱数学研究所列出了数学和计算机科学中七个未解决的问题。然而&#xff0c;直到今天&#xff0c;这些问题中只有一个被解决了&#xff0c;那就是庞加莱猜想&#xff08;Poincar Conjecture&#xff09;——被俄…

Linux下的java环境搭建

1&#xff0c;安装jdk 上传linux使用的jdk到/opt目录下 解压tar -zxvf文件 配置环境变量 vim /etc/profile 在文件中添加 export JAVA_HOME/opt/jdk8 export PATH$PATH:$JAVA_HOME/bin 使文件生效 source /etc/profile 2,安装tomcat 将tomcat包解压&#xff0c;进入bi…

Vue 官方周报 #122 - 如何使用Head插件

Hi &#x1f44b; 本周的问题中&#xff0c;您将学习在Vue中如何使用Head插件。 unhead是一个与框架无关的文档头管理器&#xff0c;您可以使用它来管理页面元数据&#xff0c;如 Vue应用程序中的标题。 它用于Nuxt核心&#xff0c;是UnJS生态系统的一部分。 安装 首先&…

rancher harvester deploy demo 【部署 harvester v1.2.1】

简介 Harvester 是一个现代的、开放的、可互操作的、基于Kubernetes的超融合基础设施(HCI)解决方案。它是一种开源替代方案&#xff0c;专为寻求云原生HCI解决方案的运营商而设计。Harvester运行在裸机服务器上&#xff0c;提供集成的虚拟化和分布式存储功能。除了传统的虚拟机…

Git and solve the problem denied to xx

创建仓库 配置Git git config user.name git config user.email git config MINGW64 /e/GithubCode $ git config --global user.name "name"MINGW64 /e/GithubCode $ git config --global user.email "mailxx.com" 生产ssh ssh-keygen -t rsa -C “xx…

了解应用层的HTTP协议与HTTPS协议,在常规请求的应用中Get与Post的区别

一、HTTP协议 1、http协议的特性2、http协议的请求 请求行 GET请求POST 请求(人脸识别方案)两个请求的区别本质区别&#xff1a; &#xff08;1&#xff09;url 携带的参数是否可见&#xff1a;&#xff08;2&#xff09;参数传递方式&#xff08;3&#xff09;缓存性&#xf…

PWM控制器电路D9741,定时闩锁、短路保护电路,输出基准电压(2.5V) 采用SOP16封装形式

D9741是一块脉宽调制方三用于也收路像机和笔记本电的等设备上的直流转换器。在便携式的仪器设备上。 主要特点&#xff1a;● 高精度基准电路 ● 定时闩锁、短路保护电路 ● 低电压输入时误操作保护电路 ● 输出基准电…

运维知识点-PostgreSql

PostgreSql 下载安装地址安装组件数据目录设置superuser密码 端口安装语言安装完成&#xff0c;是否安装Stack Builder 下载 https://www.postgresql.org/download/windows/ https://get.enterprisedb.com/postgresql/postgresql-13.7-1-windows-x64.exe 我下载的 13.7 安装…