EDA365电子论坛网

标题: 最基础的硬件设计基础,上拉电阻和下拉电阻阻值的计算 [打印本页]

作者: shanyanghuizi    时间: 2020-5-13 09:45
标题: 最基础的硬件设计基础,上拉电阻和下拉电阻阻值的计算
在使用微控制器MCU或者任何数字数字逻辑电路器件时,常常会遇到上拉电阻这个东西。这篇教程将会向你阐述什么时候,在什么地方要使用上拉电阻,并且通过简单的测试证明为什么上拉电阻是不可或缺的。

- ^0 u8 f) Y) l1 I7 Z0 V- E: D( r2 A: b( ]$ X0 T- ^
上拉电阻的目的:' S2 h0 u$ A9 y0 }# q8 a/ _/ W
1、当TTL 电路驱动COMS 电路时,如果TTL 电路输出的高电平低于COMS 电路的最低高电平(一般为3.5V), 这时就需要在TTL 的输出端接上拉电阻,以提高输出高电平的值。$ c; f2 Q+ _! _; r: a- v7 K
2、OC 门电路必须加上拉电阻,以提高输出的搞电平值。
* G- ]2 m, p; A3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。
/ I) H' D7 L% `$ S4、在COMS 芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗,提供泄荷通路。
: z4 s# E) s: O3 {# t. C5、芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限增强抗干扰能力。8 ~6 M4 y2 Z& f" x+ @7 u
6、提高总线的抗电磁干扰能力。管脚悬空就比较容易接受外界的电磁干扰。/ x+ s# X: y3 C" H7 O. Y
7、长线传输中电阻不匹配容易引起反射波干扰,加上下拉电阻是电阻匹配,有效的抑制反射波干扰。
! \% D9 a4 Z& ]2 z0 M" i& R( k, E4 J8、有些总线协议会将一些信号释放为高阻态,但是实际上电路的状态应该事确定的0 或1,所以上拉电阻可以提供一个确定的状态。, P; P2 H' p: T$ Y* }4 @2 ?# V
9、有时候雷击时候会产生浪涌,特别是火车上的车载电视啊等,电源上要加一些保护装置,如RClamp0504F 等能将电压嵌位
* T* T! T( m+ {$ t: ?1 W10、一般RST,CLK 管脚接上拉电阻3 l# e, d6 m+ i! M6 [1 |
选择上拉电阻阻值的原则包括:
+ i; s6 C7 {6 i: G* T' h) [' |1、从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小。; ?8 f$ h! D" |$ U8 g8 A
2、从确保足够的驱动电流,速度快的,考虑应当足够小;电阻小,电流大。8 Z  o! r8 \# E' h) r7 E: g
3、对于高速电路,过大的上拉电阻可能边沿变平缓(特别是吴源的信号)。
5 f+ A* C  o0 Q3 T2 @综合考虑以上三点,通常在1k 到10k 之间选取。对下拉电阻也有类似道理。; M' {7 N. f; R% D) j7 S
$ ]$ C- \4 K6 v. h
对上拉电阻和下拉电阻的选择应结合开关管特性和下级电路的输入特性进行设定,主要需要考虑以下几个因素:0 D+ z. Z: E( W2 `% B) M: _
1、驱动能力与功耗的平衡。以上拉电阻为例,一般地说,上拉电阻越小,驱动能力越强,但功耗越大,设计是应注意两者之间的均衡。( W) T; c* \. R9 ]. c. ~- I
2、下级电路的驱动需求。同样以上拉电阻为例,当输出高电平时,开关管断开,上拉电阻应适当选择以能够向下级电路提供足够的电流。3 Q( W. c2 i0 e/ W7 n' G8 R
3、高低电平的设定。不同电路的高低电平的门槛电平会有不同,电阻应适当设定以确保能输出正确的电平。以上拉电阻为例,当输出低电平时,开关管导通,上拉电阻和开关管导通电阻分压值应确保在零电平门槛之下。6 O; D3 Z9 I( h5 K& B/ _( `
4、 频率特性。以上拉电阻为例,上拉电阻和开关管漏源级之间的电容和下级电路之间的输入电容会形成RC 延迟,电阻越大,延迟越大。上拉电阻的设定应考虑电路在这方面的需求。: q) z2 k; I' U! {2 ~' j  @

5 C% z) L2 S/ g1 }8 x下拉电阻的设定的原则和上拉电阻是一样的。2 [7 t" R; T+ T# H( T
OC 门输出高电平时是一个高阻态,其上拉电流要由上拉电阻来提供,设输入端每端口不大于100uA,设输出口驱动电流约500uA,标准工作电压是5V,输入口的高低电平门限为0.8V(低于此值为低电平);2V(高电平门限值)。
- g9 {( I, C- x选上拉电阻时:  D% f# x% F: Z* T& Y3 q
500uA x 8.4K= 4.2 即选大于8.4K 时输出端能下拉至0.8V 以下,此为最小阻值,再小就拉不下来了。如果输出口驱动电流较大,则阻值可减小,保证下拉时能低于0.8V 即可。 当输出高电平时,忽略管子的漏电流,两输入口需200uA
* J* ~7 c( f! r3 y+ }2 v200uA x15K=3V 即上拉电阻压降为3V,输出口可达到2V,此阻值为最大阻值,再大就拉不到2V 了。选10K 可用。
: ]; d" s4 l- q$ y# x5 N" dCOMS 门的可参考74HC 系列 设计时管子的漏电流不可忽略,IO 口实际电流在不同电平下也是不同的,上述仅仅是原理,一句话概括为:输出高电平时要喂饱后面的输入口,输出低电平不要把输出口喂撑了(否则多余的电流喂给了级联的输入口,高于低电平门限值就不可靠了)* h. e* a( t# o* v

- E1 {. H. U9 {+ `在数字电路中不用的输入脚都要接固定电平,通过1k 电阻接高电平或接地。
5 r5 h7 T8 l3 b, V1. 电阻作用:' a# ?1 X7 Y3 n$ s2 `
接电阻就是为了防止输入端悬空; 减弱外部电流对芯片产生的干扰;保护cmos 内的保护二极管,一般电流不大于10mA ;上拉和下拉、限流 ;改变电平的电位,常用在TTL-CMOS 匹配。6 n6 Q7 j/ u- \/ }0 P
在引脚悬空时有确定的状态 ;8 Y. Y) i* w; X  j4 {
增加高电平输出时的驱动能力;
1 C$ ~5 Q+ u4 I) V; M' F8 |- Q* J6 F为OC 门提供电流;) a+ ^0 z5 {$ u. F3 w
那要看输出口驱动的是什么器件,如果该器件需要高电压的话,而输出口的输出电压又不够,就需要加上拉电阻。0 w& X1 \! a* a; Z
如果有上拉电阻那它的端口在默认值为高电平你要控制它必须用低电平才能控制如三态门电路三极管的集电极,或二极管正极去控制把上拉电阻的电流拉下来成为低电平。
6 g4 L, l+ G$ @4 d3 y9 n
尤其用在接口电路中,为了得到确定的电平,一般采用这种方法,以保证正确的电路状态,以免发生意外,比如,在电机控制中,逆变桥上下桥臂不能直通,如果它们都用同一个单片机来驱动,必须设置初始状态.防止直通!
2 h6 F2 o: K5 [! A$ B- b* d

! s/ o8 o7 o6 r+ q6 N
6 N6 p% o6 k' {/ f8 `5 [
& x2 y6 G, t6 S' t
二、 电阻的具体取值怎么计算的?
0 k" x) l7 M. z6 U
上拉电阻是不是应该是接Vcc再接电阻,然后接到管脚上的?. G) W7 E) d, q% f3 l6 {
一般上下拉的电阻取值都有个特定的范围,不能太大,也不能太小.都在几K到几十K之间吧,具体的还要看电路要求.在一些单片机中,例如AVR系列单片机atmega8L,带有内部上拉电阻Rpu。
, J% z; w% q1 o1 Q
可以通过单片机程序控制电阻上拉与否,从而不需要外接上拉。: I# A3 B% C1 V0 H: ~- h
  一般说来,不光是重要的信号线,只要信号在一段时间内可能出于无驱动状态,就需要处理。! ~4 }" _0 @/ J5 G
比如说,一个CMOS门的输入端阻抗很高,没有处理,在悬空状况下很容易捡拾到干扰,如果能量足够甚至会导致击穿或者闩锁,导致器件失效。祈祷输入的保护二极管安全工作吧。如果电平一直处于中间态,那输出就可能是不确定的情况,也可能是上下MOS都导通,对器件寿命造成影响。; Q5 R/ O, ^  M# R% [2 g9 P7 {0 S! d
总线上当所有的器件都处于高阻态时也容易有干扰出现。因为这时读写控制线处于无效状态,所以不一定会引起问题。你如果觉得自己能够接受的话也就将就了。但是这时你就要注意到,控制线不能悬空,不然……
) e6 g3 v* D- j% m7 XTTL电路的输入端是一个发射极开路引出的结构,拉高或者不接都是高电平,但是强烈建议不要悬空不接。. W% ]$ Z) F( _, C! N
还是下拉?要看需要。一方面器件可能又要求,另一方面,比如总线上两个器件,使能控制都是高有效,那么最好下拉,否则当控制信号没有建立的时候就会出现两个冲突,可能烧片。如果计算机总线上面挂了一个D/A,上电复位信号要对它清零或者预置,那么总线可以上下拉到你需要的数字。
/ q  ]; s8 R5 a4 @! a6 r6 U至于上下拉电阻的大小,这个情况就比较多了。CMOS输入的阻抗很高,上下拉电阻阻值可以大一些,一般低功耗电路的阻值取得都比较大,但是抗干扰能力相应比较弱一些。
; a! @2 T% O, i1 p场合下拉电阻取值比上拉电阻要小,这个是历史遗留问题。如上面所说,TTL电路上拉时输入3集管基射反偏,没有什么电流,但是下拉时要能够使得输入晶体管工作,这个在TTL的手册中可以查到。: C" c9 q. y, U
也是为了这个历史遗留问题,有些CMOS器件内部采用了上拉,这时它会告诉你可以不处理这些管脚,但是这时你就要注意了,因为下拉再用10K可能不好使,因为也许内置的20K电阻和外置的10K把电平固定在了1V左右。
( s0 o; K$ J1 E. z) x& p; j
有时候你会看到150欧姆或者50欧姆左右的上下拉电阻,尤其是在高速电路中会看到。
; l2 d- I$ f7 ^7 b2 h
150欧姆电阻下拉一般在PECL逻辑中出现。PECL逻辑输出级是设计开路的电压跟随器,需要你用电阻来建立电压。
& u, z3 I: t/ s0 Q& }3 o( k/ k, ^
50欧姆的电阻在TTL电路中用的不多,因为静态功耗实在是比较大。在CML电路和PECL电路中兼起到了端接和偏置的作用。, ^  I  r4 X" E. S8 A
CML电路输出级是一对集电极开路的三极管,需要一个上拉电阻来建立电平。这个电阻可以放在发送端,那么接受端还需要端接处理,也可以放到接受端,这时候端接电阻和偏置电阻就是一个。PECL电路结构上就好像CML后面跟了一个射极跟随器。
* j8 x7 f' y! T; b! r
OC门也使用上拉电阻,这个和CML有一点相像,但是还不太一样。CML和PECL电路中三极管工作在线形区,而普通门电路和OC/OD门工作在饱和区。OC/OD门电路常用作电平转换或者驱动,但是其工作速度不会太快。& ~$ M" t5 B: ^( r4 u
为什么?在OC/OD门中,上拉电阻不能太小,否则功耗会很大。而一般门的负载呈现出一个电容,负载越多,电容越大。当由高到低跳变时,电容的放电通过输出端下拉的MOS或者Bipolar管驱动,速度一般还是比较快的,但是由低到高跳变的时候,就需要通过上拉电阻来完成,R大了几十甚至上百倍,假设C不变,时间常数相应增加同样的倍数。这个在示波器上也可以明显的看出:上升时间比下降时间慢了很多。其实一般门电路上拉比下拉的驱动能力都会差一些,这个现象都存在,只不过不太明显罢了?
7 P! l) I) \) m! V! J9 `
线的上下拉电阻设计中,就要考虑同样的问题了:总线上往往负载很重,如果你要电阻来提供一些值,你就必须保证电容能通过电阻在一定时间内放电到可接受的范围。如果电阻太大,那么就可能出错。PLD可编程上下拉,还有总线保持也相当于上下拉,可以省去外接电阻。但是有一些麻烦。) s' ~0 x  b* _, N5 C; M
一般输入端才需要上下拉,假设器件10K是一个可行的值,那么10个元件并联会等效有多大的输入上拉电阻?1K。$ Q" i- q7 q0 [- L
也就是说,如果你想给信号线预置一个低电平,可能需要200欧姆的外置下拉电阻。这种情况下,如果还有一个3门驱动这个信号,高电平的时候需要扇出15mA左右的静态电流,有点太大了。这就是附加的负载效应。. [- |7 H" ^+ |7 w- w1 z7 |2 U. M" s
两个器件一个上拉一个下拉,当一个3态门驱动,输出3态时会怎么样?电平1.5V左右,两个门处于不高不低的状态,预置电平的目的没有达到,而且可能诱发震荡,对器件寿命造成影响。内置上下拉电阻使得设计可靠的电路复杂性增加了,一个不留神就可能留下隐患,而且很难分析,使用中要非常非常小心。如果能够外接电阻,尽量还是少采用内置上下拉或者总线保持的门电路吧  Z; L# N7 o9 A2 N

/ g# ~% F. y, J+ o% v
作者: wohenk    时间: 2020-5-13 10:33
不同电路的高低电平的门槛电平会有不同




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2