(一)上拉电阻:
1、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。
2、OC门电路必须加上拉电阻,才能使用。
3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。
4、在COMS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗,提供泄荷通路。
5、芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限增强抗干扰能力。
6、提高总线的抗电磁干扰能力。管脚悬空就比较容易接受外界的电磁干扰。
7、长线传输中电阻不匹配容易引起反射波干扰,加上下拉电阻是电阻匹配,有效的抑制反射波干扰。
(二)上拉电阻阻值的选择原则包括:
1、从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小。
2、从确保足够的驱动电流考虑应当足够小;电阻小,电流大。
3、对于高速电路,过大的上拉电阻可能边沿变平缓。综合考虑
以上三点,通常在1k到10k之间选取。对下拉电阻也有类似道理
(三)对上拉电阻和下拉电阻的选择应结合开关管特性和下级电路的输入特性进行设定,主要需要考虑以下几个因素:
1. 驱动能力与功耗的平衡。以上拉电阻为例,一般地说,上拉电阻越小,驱动能力越强,但功耗越大,设计是应注意两者之间的均衡。
2. 下级电路的驱动需求。同样以上拉电阻为例,当输出高电平时,开关管断开,上拉电阻应适当选择以能够向下级电路提供足够的电流。
3. 高低电平的设定。不同电路的高低电平的门槛电平会有不同,电阻应适当设定以确保能输出正确的电平。以上拉电阻为例,当输出低电平时,开关管导通,上拉电阻和开关管导通电阻分压值应确保在零电平门槛之下。
4. 频率特性。以上拉电阻为例,上拉电阻和开关管漏源级之间的电容和下级电路之间的输入电容会形成RC延迟,电阻越大,延迟越大。上拉电阻的设定应考虑电路在这方面的需求。
(四)下拉电阻的设定的原则和上拉电阻是一样的。
OC门输出高电平时是一个高阻态,其上拉电流要由上拉电阻来提供,设输入端每端口不大于100uA,设输出口驱动电流约500uA,标准工作电压是5V,输入口的高低电平门限为0.8V(低于此值为低电平);2V(高电平门限值)。
选上拉电阻时:
500uA x 8.4K= 4.2即选大于8.4K时输出端能下拉至0.8V以下,此为最小阻值,再小就拉不下来了。如果输出口驱动电流较大,则阻值可减小,保证下拉时能低于0.8V即可。
当输出高电平时,忽略管子的漏电流,两输入口需200uA
200uA x15K=3V即上拉电阻压降为3V,输出口可达到2V,此阻值为最大阻值,再大就拉不到2V了。选10K可用。COMS门的可参考74HC系列
设计时管子的漏电流不可忽略,IO口实际电流在不同电平下也是不同的,上述仅仅是原理,一句话概括为:输出高电平时要喂饱后面的输入口,输出低电平不要把输出口喂撑了(否则多余的电流喂给了级联的输入口,高于低电平门限值就不可靠了)
在数字电路中不用的输入脚都要接固定电平,通过1k电阻接高电平或接地。
1. 电阻作用:
* 接电组就是为了防止输入端悬空
* 减弱外部电流对芯片产生的干扰
* 保护cmos内的保护二极管,一般电流不大于10mA
* 上拉和下拉、限流
* 改变电平的电位,常用在TTL-CMOS匹配
1.在引脚悬空时有确定的状态
2.增加高电平输出时的驱动能力。
3.为OC门提供电流
那要看输出口驱动的是什么器件,如果该器件需要高电压的话,而输出口的输出电压又不够,就需要加上拉电阻。
如果有上拉电阻那它的端口在默认值为高电平你要控制它必须用低电平才能控制如三态门电路三极管的集电极,或二极管正极去控制把上拉电阻的电流拉下来成为低电平。反之,
尤其用在接口电路中,为了得到确定的电平,一般采用这种方法,以保证正确的电路状态,以免发生意外,比如,在电机控制中,逆变桥上下桥臂不能直通,如果它们都用同一个单片机来驱动,必须设置初始状态.防止直通!
2、定义:
* 上拉就是将不确定的信号通过一个电阻钳位在高电平!电阻同时起限流作用!下拉同理!
* 上拉是对器件注入电流,下拉是输出电流
* 弱强只是上拉电阻的阻值不同,没有什么严格区分
* 对于非集电极(或漏极)开路输出型电路(如普通门电路)提升电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路输出电流通道。
3、为什么要使用拉电阻:
* 一般作单键触发使用时,如果IC本身没有内接电阻,为了使单键维持在不被触发的状态或是触发后回到原状态,必须在IC外部另接一电阻。
* 数字电路有三种状态:高电平、低电平、和高阻状态,有些应用场合不希望出现高阻状态,可以通过上拉电阻或下拉电阻的方式使处于稳定状态,具体视设计要求而定!
* 一般说的是I/O端口,有的可以设置,有的不可以设置,有的是内置,有的是需要外接,I/O端口的输出类似与一个三极管的C,当C接通过一个电阻和电源连接在一起的时候,该电阻成为上C拉电阻,也就是说,如果该端口正常时为高电平,C通过一个电阻和地连接在一起的时候,该电阻称为下拉电阻,使该端口平时为低电平,作用:
比如:当一个接有上拉电阻的端口设为输如状态时,他的常态就为高电平,用于检测低电平的输入。
* 上拉电阻是用来解决总线驱动能力不足时提供电流的。一般说法是拉电流,下拉电阻是用来吸收电流的,也就是灌电流。
选择这个电阻,主要根据所接电路情况来选择。也有“阻抗匹配”的意思。
如果MCU作为输入,信号源的阻抗足够低,这个电阻仅作为在没有接入信号源时起固定电平作用,选择大一些的好。如果源输入部分象OC类的器件,这个电阻要根据源输入器件的输出阻抗来确定。
对于数字电路,负载电阻越小,频响越好,所以,对于它的取值还要看具体情况。
如果MCU作为输出,也要看后级的阻抗来确定它的阻值。原理同上。
上拉电阻要根据具体的用途、器件相应引脚容许的电流值、还有相应引脚的工作电压和供电电压之间的差值、需要上拉的信号线的速度等等,来决定用多大的上拉电阻。
上拉电阻的选择,主要是参照你所用的mcu和你外接的电路来选择。比如说有的MCU,是5V供电,他的I0口在低电平状态时能够通过的电流为2MA,IO口的低电平是小于0.5V 。
如果你选择的是10k,当mcu为低电平时,通过的电流为0.5MA,IO口端的电压为0.1V,那么这个状态很好,满足要求。
如果选择的是1k,单片机内部是有内阻的,电阻过小,会导致通过IO口的电流过大烧坏单片机,因为单片io内部是有内阻的,电流大了分得的电压就越大,有可能导致IO口末端的电压大于0.5V,单片机认为不是低电平,数据出现错误。
总之:上拉电阻的选择,上拉电阻选择越大,功耗越低,但是要保证通过的电流能驱动外设和IO口。上拉电阻选择越小,功耗越大,但是要保证当为低电平时,io口端的电压要在低电平的电压值的范围之内。
经验值:一般为5.6k到10k之间,一般都不会出现太大问题。
如果在手持设备或电池供电的应用中,可能上下拉电阻会更大一些,比如50K。一般应用中上下拉电阻,10K、4.7K、5.1K都用,不过有时候还得对照外部器件手册来确定。比如COMS输入的芯片,上下拉电阻可以用大一些,如果是TTL输入的芯片,有时候用的不合适,反而起负作用。
有些芯片I2C总线推荐上拉电阻为 2.2K。
具体用多少看对应的型号的datasheet,不过5V一般用10K,3.3用4.7多一点,具体问题具体分析。
2. I2C电路举例
3. I2C为什么要上拉电阻
(1)单片机内部有上拉电阻,有些上拉能力够了,可以不加上拉电阻,有些不够,那就必须在外部加上拉电阻。解析如下:
“这个就要看你使用的单片机是否有标准的IIC标准接口了,如果你使用了标准的IIC接口,这个接口在使能的时候,引脚进入漏极开路模式,不过有一些单片机内部的上拉电阻可以使能,这样就省去了外部的上拉电阻,我用过AVR的,就是使能的内部的上拉电阻。但是如果是使用单片机的引脚模拟IIC协议的话,这个就得另说了,得看你的单片机引脚是否支持漏极开路模式或者上拉模式,不过一般推拉模式的输出引脚用在IIC里可能会有问题具体也没用过。”
(2)也有人回答是为了保护,如下:
“其实各个I2C接口工作时只检测高、低电平,管你有没有什么上拉电阻呢!但问题是,你要是直接接电源的来实现高的话,一旦器件拉低时岂不危险?所以,这个上 拉电阻有保护作用。如果你确信直接接电源没问题(比如有短路保护等,呵呵),也可以试一试,问题的关键是主器件要能正确的拉低或置高,从器件要能明确地区 分高、低就可以了,这是问题的关键,当然,还有时序问题,不能混乱!”
根据I2C总线规范,总线空闲时两根线都必须为高
由于I2C接口采用Open Drain机制,器件本身只能输出低电平,无法主动输出高电平,只能通过外部上拉电阻RP将信号线拉至高电平。因此I2C总线上的上拉电阻是必须的!如下图所示:
I2C 总线空闲的时候,两条信号线应该维持高电平。否则,上拉电阻上会有耗电。特别是在上电过程中,IO线上电平也应保持在高电平状态。也就是说:当 Master的I2C使用的是IO软件模拟时,一定要保证该两个IO上电默认均为输入(或高阻)或者输出高电平,切不可默认为输出低电平。IO默认为输入低时,可以通过外部上拉电阻将I2C信号线拉至高电平。
4. I2C上拉电阻大小问题
看了一些文档,还有前辈的提醒,的确I2C上拉电阻也有很大的文章可做啊。有人这样说道:
“最直接的,牵涉到两方面的问题,首先是功耗的问题,其次是速度的问题,二者是矛盾的!如果你想尽量提高速度,那么就牵涉到总线电容的问题,其实很容易理解, 上拉电阻与总线的电容形成了RC,高速时将直接影响通讯!因为总线拉高时有个充电时间以及高电平的阀值,如果还没有充电到足以保证从器件可以识别的高电平的阀值时主器件就以为完成了一个总线动作的话,那么通讯肯定是不能进行的!如果你想尽可能降低功耗,那么就要尽可能增大电阻以最大可能的减小电路各部分的消耗电流从而实现整体降低功耗!但不可能无限大,否则充电时间你会受不了的!”
I2C的上拉电阻可以是1.5K,2.2K,4.7K, 电阻的大小对时序有一定影响,对信号的上升时间和下降时间也有影响,一般接1.5K或2.2K。
I2C上拉电阻确定有一个计算公式:
Rmin={Vdd(min)-o.4V}/3mA
Rmax=(T/0.874) *c, T=1us 100KHz, T=0.3us 400KHz
C是Bus capacitance
Rp最大值由总线最大容限(Cbmax)决定,Rp最小值由Vio与上拉驱动电流 (最大取3mA) 决定;
于是 Rpmin=5V/3mA≈1.7K(@Vio=5V)或者2.8V/3mA≈1K(@Vio=2.8V)
标准模式,100Kbps 总线的负载最大容限 <=400pF ;快速模式, 400Kbps 总线的负载最大容限 <=200pF ,根据具体使用情况、 目前的器件制造工艺、PCB的走线距离等因素以及标准的向下兼容性,设计中以快速模式为基础,即总线负载电容<200pF,也就是传输速度可以上到 400Kbps是不成问题的。于是Rpmax可以取的范围是1.8K~7K @ Vio=5V对应50pF~200pF
根据Rpmin与Rpmax的限制范围,一般取5.1K @ Vio=5V , 负载容限的环境要求也容易达到。在2.8V系统中,console设计选3.3K,portable/handset等低供耗的设计选4.7K牺牲速度换取电池使用时间
总的来说:电源电压限制了上拉电阻的最小值 ; 负载电容(总线电容)限制了上拉电阻的最大值
5. I2C上拉电阻电源问题
在部中分应用中,还存在主从设备以及上拉电阻电源不一致的情况,比如Camera模组。在很多设计方案中,Camera模组不工作时,并不是进入Power Down模式,而是直接关闭模组供电VDDS。此时,处理器与模组相互连接的所有信号线都应该进入高阻态,否则就会有电流漏入模组;而对于此时的I2C控制信号线来说,由于上拉电阻的存在,必须关断上拉电阻电源VDDP。如果上拉电阻使用的是系统电源VDDM(VDDP=VDDM),无法关闭,就会有漏电 流进入模组;因此这种情况下,应该使用VDDS作为上拉电阻电源(VDDP=VDDS),这样上拉电阻电源与Slave电源即可同时关闭,切断了漏电路径。
另外需要注意的是,在上述应用实例中选择的IO,应该选取上电默认为输入(或高阻)才行。
上拉定义
1、上拉就是将不确定的信号通过一个电阻嵌位在高电平,电阻同时起限流作用;
2、上拉对器件注入电流,下拉输出电流;
3、弱强只是上拉电阻的阻值不同,没有什么严格区分;
4、对于非集电极(或漏极)开路输出型电路(如普通门电路)提升电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路输出电流通道。
拉电阻作用
1、一般作单键触发使用时,如果IC本身没有内接电阻,为了使单键维持在不被触发的状态或是触发后回到原状态,必须在IC外部另接一电阻;
2、数字电路有三种状态:高电平、低电平、和高阻状态,有些应用场合不希望出现高阻状态,可以通过上拉电阻或下拉电阻的方式使处于稳定状态,具体视设计要求而定;
3、一般说的是I/O端口,有的可以设置,有的不可以设置,有的是内置,有的是需要外接,I/O端口的输出类似与一个三极管的C,当C接通过一个电阻和电源连接在一起的时候,该电阻成为上C拉电阻,也就是说,如果该端口正常时为高电平;C通过一个电阻和地连接在一起的时候,该电阻称为下拉电阻,使该端口平时为低电平,作用吗:比如:“当一个接有上拉电阻的端口设为输入状态时,他的常态就为高电平,用于检测低电平的输入”;
4、上拉电阻是用来解决总线驱动能力不足时提供电流的。一般说法是拉电流,下拉电阻是用来吸收电流的,也就是通常所说的灌电流;
5、接电阻就是为了防止输入端悬空;
6、减弱外部电流对芯片产生的干扰;
7、保护cmos内的保护二极管,一般电流不大于10mA;
8、通过上拉或下拉来增加或减小驱动电流;
9、改变电平电位,常用在TTL-CMOS匹配;
10、在引脚悬空时有确定的状态;
11、增加高电平输出时的驱动能力;
12、为OC门提供电流。
上拉电阻应用原则
1、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3。5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值;
2、OC门电路“必须加上拉电阻,才能使用”;
3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻;
4、在COMS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗,提供泄荷通路;
5、芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限增强抗干扰能力;
6、提高总线的抗电磁干扰能力。管脚悬空就比较容易接受外界的电磁干扰;
7、长线传输中电阻不匹配容易引起反射波干扰,加上下拉电阻是电阻匹配,有效的抑制反射波干扰;
8、在数字电路中不用的输入脚都要接固定电平,通过1k电阻接高电平或接地。
上拉阻值选择原则
1、从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小。
2、从确保足够的驱动电流考虑应当足够小;电阻小,电流大。
3、对于高速电路,过大的上拉电阻可能边沿变平缓。
综合考虑以上三点,通常在1k到10k之间选取。对下拉电阻也有类似道理。对上拉电阻和下拉电阻的选择应“结合开关管特性和下级电路的输入特性进行设定,主要需要考虑以下几个因素”:
1、驱动能力与功耗的平衡。以上拉电阻为例,一般地说,上拉电阻越小,驱动能力越强,但功耗越大,设计是应注意两者之间的均衡。
2、下级电路的驱动需求。同样以上拉电阻为例,当输出高电平时,开关管断开,上拉电阻应适当选择以能够向下级电路提供足够的电流。
3、高低电平的设定。不同电路的高低电平的门槛电平会有不同,电阻应适当设定以确保能输出正确的电平。以上拉电阻为例,当输出低电平时,开关管导通,上拉电阻和开关管导通电阻分压值应确保在零电平门槛之下。
4、频率特性。以上拉电阻为例,上拉电阻和开关管漏源级之间的电容和下级电路之间的输入电容会形成“RC延迟”,电阻越大,延迟越大。上拉电阻的设定应考虑电路在这方面的需求。
OC门输出高电平时是一个高阻态,其上拉电流要由上拉电阻来提供,设输入端每端口不大于100uA,设输出口驱动电流约500uA,标准工作电压是5V,输入口的高低电平门限为0.8V(低于此值为低电平);2V(高电平门限值)。
选上拉电阻时:500uA x 8.4K= 4.2即选大于8.4K时输出端能下拉至0.8V以下,此为最小阻值,再小就拉不下来了。如果输出口驱动电流较大,则阻值可减小,保证下拉时能低于0.8V即可。当输出高电平时,忽略管子的漏电流,两输入口需200uA,200uA x15K=3V即上拉电阻压降为3V,输出口可达到2V,此阻值为最大阻值,再大就拉不到2V了。选10K可用。
COMS门的可参考74HC系列设计时管子的漏电流不可忽略,IO口实际电流在不同电平下也是不同的,上述仅仅是原理,一句话概括为:“输出高电平时要喂饱后面的输入口,输出低电平不要把输出口喂撑了,否则多余的电流喂给了级联的输入口,高于低电平门限值就不可靠了。