只发PCB电路相关42 随时更新~~ whaosoft aiot http://143ai.com
一、晶振为什么不能放置在PCB边缘
某行车记录仪,测试的时候要加一个外接适配器,在机器上电运行测试时发现辐射超标,具体频点是84MHz、144MHz、168MHz,需要分析其辐射超标产生的原因,并给出相应的对策。辐射测试数据·如下:
图1:辐射测试数据
辐射源头分析
该产品只有一块PCB,其上有一个12MHz的晶体。其中超标频点恰好都是12MHz的倍频,而分析该机器容易EMI辐射超标的屏和摄像头,发现LCD-CLK是33MHz,而摄像头MCLK是24MHz;通过排除发现去掉摄像头后,超标点依然存在,而通过屏蔽12MHz晶体,超标点有降低,由此判断144MHz超标点与晶体有关,PCB布局如下:
图2:PCB布局图
辐射产生的原理
从PCB布局可以看出,12MHz的晶体正好布置在了PCB边缘,当产品放置于辐射发射的测试环境中时,被测产品的高速器件与实验室中参考地会形成一定的容性耦合,产生寄生电容,导致出现共模辐射,寄生电容越大,共模辐射越强;而寄生电容实质就是晶体与参考地之间的电场分布,当两者之间电压恒定时,两者之间电场分布越多,两者之间电场强度就越大,寄生电容也会越大,晶体在PCB边缘与在PCB中间时电场分布如下:
图3:PCB边缘的晶振与参考接地板之间的电场分布示意图
图4:PCB中间的晶振与参考接地板之间的电场分布示意图
从图中可以看出,当晶振布置在PCB中间,或离PCB边缘较远时,由于PCB中工作地(GND)平面的存在,使大部分的电场控制在晶振与工作地之间,即在PCB内部,分布到参考接地板的电场大大减小,导致辐射发射就降低了。
处理措施
将晶振内移,使其离PCB边缘至少1cm以上的距离,并在PCB表层离晶振1cm的范围内敷铜,同时把表层的铜通过过孔与PCB地平面相连。经过修改后的测试结果频谱图如下,从图可以看出,辐射发射有了明显改善。
思考与启示
高速的印制线或器件与参考接地板之间的容性耦合,会产生EMI问题,敏感印制线或器件布置在PCB边缘会产生抗扰度问题。
如果设计中由于其他一些原因一定要布置在PCB边缘,那么可以在印制线边上再布一根工作地线,并多增加过孔将此工作地线与工作地平面相连。
二、PCB制作过程
各大PCB加工厂家,流程大概相似,具体会有微小差别。针不同类型的PCB线路板,加工流程也会有不同,本文仅作为科普。
PCB的制作非常复杂,以四层印制板为例,其制作过程主要包括了PCB布局、芯板的制作、内层PCB布局转移、芯板打孔与检查、层压、钻孔、孔壁的铜化学沉淀、外层PCB布局转移、外层PCB蚀刻等步骤。
1、PCB布局
PCB制作第一步是整理并检查PCB布局(Layout)。PCB制作工厂收到PCB设计公司的CAD文件,由于每个CAD软件都有自己独特的文件格式,所以PCB工厂会转化为一个统一的格式——Extended Gerber RS-274X 或者 Gerber X2。然后工厂的工程师会检查PCB布局是否符合制作工艺,有没有什么缺陷等问题。
2、芯板的制作
清洗覆铜板,如果有灰尘的话可能导致最后的电路短路或者断路。
一张8层PCB板,实际上是由3张覆铜板(芯板)加2张铜膜,然后用半固化片粘连起来的。制作顺序是从最中间的芯板(4、5层线路)开始,不断地叠加在一起,然后固定。4层PCB的制作也是类似的,只不过只用了1张芯板加2张铜膜。
3、内层PCB布局转移
先要制作最中间芯板(Core)的两层线路。覆铜板清洗干净后会在表面盖上一层感光膜。这种膜遇到光会固化,在覆铜板的铜箔上形成一层保护膜。
将两层PCB布局胶片和双层覆铜板,最后插入上层的PCB布局胶片,保证上下两层PCB布局胶片层叠位置精准。
感光机用UV灯对铜箔上的感光膜进行照射,透光的胶片下,感光膜被固化,不透光的胶片下还是没有固化的感光膜。固化感光膜底下覆盖的铜箔就是需要的PCB布局线路,相当于手工PCB的激光打印机墨的作用。
然后用碱液将没有固化的感光膜清洗掉,需要的铜箔线路将会被固化的感光膜所覆盖。
然后再用强碱,比如NaOH将不需要的铜箔蚀刻掉。
将固化的感光膜撕掉,露出需要的PCB布局线路铜箔。
4、芯板打孔与检查
芯板已经制作成功。然后在芯板上打对位孔,方便接下来和其它原料对齐。芯板一旦和其它层的PCB压制在一起就无法进行修改了,所以检查非常重要。会由机器自动和PCB布局图纸进行比对,查看错误。
5、层压
这里需要一个新的原料叫做半固化片,是芯板与芯板(PCB层数>4),以及芯板与外层铜箔之间的粘合剂,同时也起到绝缘的作用。
下层的铜箔和两层半固化片已经提前通过对位孔和下层的铁板固定好位置,然后将制作好的芯板也放入对位孔中,最后依次将两层半固化片、一层铜箔和一层承压的铝板覆盖到芯板上。
将被铁板夹住的PCB板子们放置到支架上,然后送入真空热压机中进行层压。真空热压机里的高温可以融化半固化片里的环氧树脂,在压力下将芯板们和铜箔们固定在一起。
层压完成后,卸掉压制PCB的上层铁板。然后将承压的铝板拿走,铝板还起到了隔离不同PCB以及保证PCB外层铜箔光滑的责任。这时拿出来的PCB的两面都会被一层光滑的铜箔所覆盖。
6、钻孔
要将PCB里4层毫不接触的铜箔连接在一起,首先要钻出上下贯通的穿孔来打通PCB,然后把孔壁金属化来导电。
用X射线钻孔机机器对内层的芯板进行定位,机器会自动找到并且定位芯板上的孔位,然后给PCB打上定位孔,确保接下来钻孔时是从孔位的正中央穿过。
将一层铝板放在打孔机机床上,然后将PCB放在上面。为了提高效率,根据PCB的层数会将1~3个相同的PCB板叠在一起进行穿孔。最后在最上面的PCB上盖上一层铝板,上下两层的铝板是为了当钻头钻进和钻出的时候,不会撕裂PCB上的铜箔。
在之前的层压工序中,融化的环氧树脂被挤压到了PCB外面,所以需要进行切除。靠模铣床根据PCB正确的XY坐标对其外围进行切割。
7、孔壁的铜化学沉淀
由于几乎所有PCB设计都是用穿孔来进行连接的不同层的线路,一个好的连接需要25微米的铜膜在孔壁上。这种厚度的铜膜需要通过电镀来实现,但是孔壁是由不导电的环氧树脂和玻璃纤维板组成。
所以第一步就是先在孔壁上堆积一层导电物质,通过化学沉积的方式在整个PCB表面,也包括孔壁上形成1微米的铜膜。整个过程比如化学处理和清洗等都是由机器控制的。
固定PCB
清洗PCB
运送PCB
8、外层PCB布局转移
接下来会将外层的PCB布局转移到铜箔上,过程和之前的内层芯板PCB布局转移原理差不多,都是利用影印的胶片和感光膜将PCB布局转移到铜箔上,唯一的不同是将会采用正片做板。
内层PCB布局转移采用的是减成法,采用的是负片做板。PCB上被固化感光膜覆盖的为线路,清洗掉没固化的感光膜,露出的铜箔被蚀刻后,PCB布局线路被固化的感光膜保护而留下。
外层PCB布局转移采用的是正常法,采用正片做板。PCB上被固化的感光膜覆盖的为非线路区。清洗掉没固化的感光膜后进行电镀。有膜处无法电镀,而没有膜处,先镀上铜后镀上锡。退膜后进行碱性蚀刻,最后再退锡。线路图形因为被锡的保护而留在板上。
将PCB用夹子夹住,将铜电镀上去。之前提到,为了保证孔位有足够好的导电性,孔壁上电镀的铜膜必须要有25微米的厚度,所以整套系统将会由电脑自动控制,保证其精确性。
9、外层PCB蚀刻
接下来由一条完整的自动化流水线完成蚀刻的工序。首先将PCB板上被固化的感光膜清洗掉。然后用强碱清洗掉被其覆盖的不需要的铜箔。再用退锡液将PCB布局铜箔上的锡镀层退除。清洗干净后4层PCB布局就完成了。
三 、模拟电路分析,从八大基础电路开始
在电子电路中,电源、放大、振荡和调制电路被称为模拟电子电路,因为它们加工和处理的是连续变化的模拟信号。
1 反馈
反馈是指把输出的变化通过某种方式送到输入端,作为输入的一部分。如果送回部分和原来的输入部分是相减的,就是负反馈。
2 耦合
一个放大器通常有好几级,级与级之间的联系就称为耦合。放大器的级间耦合方式有三种:
①RC 耦合(见图a): 优点是简单、成本低。但性能不是最佳。
② 变压器耦合(见图b):优点是阻抗匹配好、输出功率和效率高,但变压器制作比较麻烦。
③ 直接耦合(见图c): 优点是频带宽,可作直流放大器使用,但前后级工作有牵制,稳定性差,设计制作较麻烦。
3 功率放大器
能把输入信号放大并向负载提供足够大的功率的放大器叫功率放大器。例如收音机的末级放大器就是功率放大器。
3.1 甲类单管功率放大器
负载电阻是低阻抗的扬声器,用变压器可以起阻抗变换作用,使负载得到较大的功率。
这个电路不管有没有输入信号,晶体管始终处于导通状态,静态电流比较大,困此集电极损耗较大,效率不高,大约只有 35 %。这种工作状态被称为甲类工作状态。这种电路一般用在功率不太大的场合,它的输入方式可以是变压器耦合也可以是 RC 耦合。
3.2 乙类推挽功率放大器
下图是常用的乙类推挽功率放大电路。
它由两个特性相同的晶体管组成对称电路,在没有输入信号时,每个管子都处于截止状态,静态电流几乎是零,只有在有信号输入时管子才导通,这种状态称为乙类工作状态。当输入信号是正弦波时,正半周时 VT1 导通 VT2 截止,负半周时 VT2 导通 VT1 截止。两个管子交替出现的电流在输出变压器中合成,使负载上得到纯正的正弦波。这种两管交替工作的形式叫做推挽电路。
3.3 OTL 功率放大器
目前广泛应用的无变压器乙类推挽放大器,简称 OTL 电路,是一种性能很好的功率放大器。为了易于说明,先介绍一个有输入变压器没有输出变压器的 OTL 电路,如下图所示。
4 直流放大器
能够放大直流信号或变化很缓慢的信号的电路称为直流放大电路或直流放大器。测量和控制方面常用到这种放大器。
4.1 双管直耦放大器
直流放大器不能用 RC 耦合或变压器耦合,只能用直接耦合方式。下图是一个两级直耦放大器。直耦方式会带来前后级工作点的相互牵制,电路中在 VT2 的发射极加电阻 R E 以提高后级发射极电位来解决前后级的牵制。
直流放大器的另一个更重要的问题是零点漂移。所谓零点漂移是指放大器在没有输入信号时,由于工作点不稳定引起静 态电位缓慢地变化,这种变化被逐级放大,使输出端产生虚假信号。放大器级数越多,零点漂移越严重。所以这种双管直耦放大器只能用于要求不高的场合。
4.2 差分放大器
解决零点漂移的办法是采用差分放大器,下图是应用较广的射极耦合差分放大器。它使用双电源,其中 VT1 和 VT2 的特性相同,两组电阻数值也相同, R E 有负反馈作用。实际上这是一个桥形电路,两个 R C 和两个管子是四个桥臂,输出电压 V 0 从电桥的对角线上取出。没有输入信号时,因为 RC1=RC2 和两管特性相同,所以电桥是平衡的,输出是零。由于是接成桥形,零点漂移也很小。差分放大器有良好的稳定性,因此得到广泛的应用。
5 集成运算放大器
集成运算放大器是一种把多级直流放大器做在一个集成片上,只要在外部接少量元件就能完成各种功能的器件。因为它早期是用在模拟计算机中做加法器、乘法器用的,所以叫做运算放大器。
6 振荡器
不需要外加信号就能自动地把直流电能转换成具有一定振幅和一定频率的交流信号的电路就称为振荡电路或振荡器。这种现象也叫做自激振荡。或者说,能够产生交流信号的电路就叫做振荡电路。
一个振荡器必须包括三部分:放大器、正反馈电路和选频网络。放大器能对振荡器输入端所加的输入信号予以放大使输出信号保持恒定的数值。正反馈电路保证向振荡器输入端提供的反馈信号是相位相同的,只有这样才能使振荡维持下去。选频网络则只允许某个特定频率f0能通过,使振荡器产生单一频率的输出。
振荡器能不能振荡起来并维持稳定的输出是由以下两个条件决定的;一个是反馈电压Uf和输入电压 Ui要相等,这是振幅平衡条件。二是 Uf 和 Ui 必须相位相同,这是相位平衡条件,也就是说必须保证是正反馈。一般情况下,振幅平衡条件往往容易做到,所以在判断一个振荡电路能否振荡,主要是看它的相位平衡条件是否成立。
振荡器按振荡频率的高低可分成超低频( 20赫以下)、低频( 20赫~ 200千赫)、高频(200千赫~ 30兆赫)和超高频( 10兆赫~ 350兆赫)等几种。按振荡波形可分成正弦波振荡和非正弦波振荡两类。
正弦波振荡器按照选频网络所用的元件可以分成 LC 振荡器、 RC振荡器和石英晶体振荡器三种。石英晶体振荡器有很高的频率稳定度,只在要求很高的场合使用。在一般家用电器中,大量使用着各种 LC振荡器和 RC 振荡器。
6.1 LC振荡器
LC 振荡器的选频网络是LC 谐振电路。它们的振荡频率都比较高,常见电路有 3 种。
1) 变压器反馈 LC 振荡电路
图(a)是变压器反馈 LC 振荡电路。晶体管 VT 是共发射极放大器。变压器 T 的初级是起选频作用的 LC 谐振电路,变压器 T 的次级向放大器输入提供正反馈信号。接通电源时, LC 回路中出现微弱的瞬变电流,但是只有频率和回路谐振频率 f 0 相同的电流才能在回路两端产生较高的电压,这个电压通过变压器初次级 L1 、 L2 的耦合又送回到晶体管 V 的基极。从图(b)看到,只要接法没有错误,这个反馈信号电压是和输入信号电压相位相同的,也就是说,它是正反馈。因此电路的振荡迅速加强并最后稳定下来。
变压器反馈 LC 振荡电路的特点是:频率范围宽、容易起振,但频率稳定度不高。它的振荡频率是:f 0 =1/2π LC 。常用于产生几十千赫到几十兆赫的正弦波信号。
2) 电感三点式振荡电路
图(a)是另一种常用的电感三点式振荡电路。图中电感 L1 、 L2 和电容 C 组成起选频作用的谐振电路。从 L2 上取出反馈电压加到晶体管 VT 的基极。从图(b)看到,晶体管的输入电压和反馈电压是同相的,满足相位平衡条件的,因此电路能起振。由于晶体管的 3 个极是分别接在电感的 3 个点上的,因此被称为电感三点式振荡电路。
电感三点式振荡电路的特点是:频率范围宽、容易起振,但输出含有较多高次调波,波形较差。它的振荡频率是:f 0 =1/2π LC ,其中 L=L1 + L2 + 2M 。常用于产生几十兆赫以下的正弦波信号。
3) 电容三点式振荡电路
还有一种常用的振荡电路是电容三点式振荡电路,见图(a)。图中电感 L 和电容 C1 、 C2 组成起选频作用的谐振电路,从电容 C2 上取出反馈电压加到晶体管 VT 的基极。从图(b)看到,晶体管的输入电压和反馈电压同相,满足相位平衡条件,因此电路能起振。由于电路中晶体管的 3 个极分别接在电容 C1 、 C2 的 3 个点上,因此被称为电容三点式振荡电路。
电容三点式振荡电路的特点是:频率稳定度较高,输出波形好,频率可以高达 100 兆赫以上,但频率调节范围较小,因此适合于作固定频率的振荡器。它的振荡频率是:f 0 =1/2π LC ,其中 C= C 1 +C 2 。
上面 3 种振荡电路中的放大器都是用的共发射极电路。共发射极接法的振荡器增益较高,容易起振。也可以把振荡电路中的放大器接成共基极电路形式。共基极接法的振荡器振荡频率比较高,而且频率稳定性好。
6.2 RC 振荡器
RC 振荡器的选频网络是 RC 电路,它们的振荡频率比较低。常用的电路有两种。
1) RC 相移振荡电路
RC 相移振荡电路的特点是:电路简单、经济,但稳定性不高,而且调节不方便。一般都用作固定频率振荡器和要求不太高的场合。它的振荡频率是:当 3 节 RC 网络的参数相同时:f 0 = 1 2π 6RC 。频率一般为几十千赫。
2) RC 桥式振荡电路
RC 桥式振荡电路的性能比 RC 相移振荡电路好。它的稳定性高、非线性失真小,频率调节方便。它的振荡频率是:当 R1=R2=R 、 C1=C2=C 时 f 0 = 1 2πRC 。它的频率范围从 1 赫~ 1 兆赫。
7 调幅和检波电路
广播和无线电通信是利用调制技术把低频声音信号加到高频信号上发射出去的。在接收机中还原的过程叫解调。其中低频信号叫做调制信号,高频信号则叫载波。常见的连续波调制方法有调幅和调频两种,对应的解调方法就叫检波和鉴频。
7.1 调幅电路
调幅是使载波信号的幅度随着调制信号的幅度变化,载波的频率和相位不变。能够完成调幅功能的电路就叫调幅电路或调幅器。
调幅是一个非线性频率变换过程,所以它的关键是必须使用二极管、三极管等非线性器件。根据调制过程在哪个回路里进行可以把三极管调幅电路分成集电极调幅、基极调幅和发射极调幅 3 种。下面举集电极调幅电路为例。
上图是集电极调幅电路,由高频载波振荡器产生的等幅载波经 T1 加到晶体管基极。低频调制信号则通过 T3 耦合到集电极中。C1 、 C2 、 C3 是高频旁路电容, R1 、 R2 是偏置电阻。集电极的 LC 并联回路谐振在载波频率上。如果把三极管的静态工作点选在特性曲线的弯曲部分,三极管就是一个非线性器件。因为晶体管的集电极电流是随着调制电压变化的, 所以集电极中的 2 个信号就因非线性作用而实现了调幅。由于 LC 谐振回路是调谐在载波的基频上,因此在 T2 的次级就可得到调幅波输出。
7.2 检波电路
检波电路或检波器的作用是从调幅波中取出低频信号。它的工作过程正好和调幅相反。检波过程也是一个频率变换过程,也要使用非线性元器件。常用的有二极管和三极管。另外为了取出低频有用信号,还必须使用滤波器滤除高频分量,所以检波电路通常包含非线性元器件和滤波器两部分。下面举二极管检波器为例说明它的工作原理。
上图是一个二极管检波电路。VD 是检波元件, C 和 R 是低通滤波器。当输入的已调波信号较大时,二极管 VD 是断续工作的。正半周时,二极管导通,对 C 充电;负半周和输入电压较小时,二极管截止, C 对 R 放电。在 R 两端得到的电压包含的频率成分很多,经过电容 C 滤除了高频部分,再经过隔直流电容 C0 的隔直流作用,在输出端就可得到还原的低频信号。
8 调频和鉴频电路
调频是使载波频率随调制信号的幅度变化,而振幅则保持不变。鉴频则是从调频波中解调出原来的低频信号,它的过程和调频正好相反。
8.1 调频电路
能够完成调频功能的电路就叫调频器或调频电路。常用的调频方法是直接调频法,也就是用调制信号直接改变载波振荡器频率的方法。下图画出了它的大意,图中用一个可变电抗元件并联在谐振回路上。用低频调制信号控制可变电抗元件参数的变化,使载波振荡器的频率发生变化。
8.2 鉴频电路
能够完成鉴频功能的电路叫鉴频器或鉴频电路,有时也叫频率检波器。鉴频的方法通常分二步,第一步先将等幅的调频波变成幅度随频率变化的调频 — 调幅波,第二步再用一般的检波器检出幅度变化,还原成低频信号。常用的鉴频器有相位鉴频器、比例鉴频器等。
四、单片机硬件电路的设计方案和心得
减少后级电源对前级的影响,防止电源正负接反烧坏后级电路,防止电源关电时电流倒灌,但经过二极管有0.4V左右压降,需要考虑经过0.4V降压后会不会低于后级电路的正常工作电压。
#1、按键电路
R1上拉电阻:
将不确定的信号通过一个电阻钳位在高电平,维持在不被触发的状态或是触发后回到原状态。(个人建议加上)
C1电容:
减小按键抖动及高频信号干扰。(个人建议加上)
R2限流电阻:
保护IO口,防止过流过高电压烧坏IO口,对静电或者一些高压脉冲有吸收作用。(个人建议加上)
R2的取值100欧~10k不等,如果有设置内部上拉,该值不能太大,否则电流不足以拉低IO口。
D1 ESD二极管:
静电保护二极管,防止静电干扰或者损坏IO口。(这个根据PCB的成本及防护级别要求来决定添加与否)
#2、外接信号输入
R3上拉电阻:
将不确定的信号通过一个电阻钳位在高电平,维持在不被触发的状态或是触发后回到原状态。(如果外接的连接线比较长,芯片内部上拉能力比较弱,则建议加上。平时通信距离不长,有内部上拉则可以省略)
C2电容:
防止高频信号干扰。(注意,如果输入频率信号比较大,C2容值要对应减少,或者直接省略C2)
R4限流电阻:
保护IO口,防止过流过高电压烧坏IO口,对静电或者一些高压脉冲有吸收作用。(个人建议加上)
D2 ESD二极管:
静电保护二极管,防止静电干扰或者损坏IO口。(这个根据PCB的成本及防护级别要求来决定添加与否)
#3、输出电路继电器
U1光耦:
分离高低压,防止高压干扰,实现电气隔离。
D5 1N4148:
续流二极管,保护元件不被感应电压击du穿或烧坏,以并联的方式接到产生感应电动势的元件两端,并与其形成回路,使其产生的高电动势在回路以续电流方式消耗,从而起到保护电路中的元件不被损坏的作用。
#4、达林顿晶体管
达林顿晶体管,小伙伴们一般常用于步进电机驱动,其实可以用于电机调速,大功率开关电路,驱动继电器,驱动功率比较大的LED光源,利用PWM来调节亮度哦。
R6、R7、R8电阻:
用于限流,防止ULN2001损坏,导致高压直接输入到MCU的IO。(由于ULN2001D本身自带2.7K电阻,这里的R6、R7、R8可以省略;如果某些驱动芯片没带电阻最好自己加上,具体情况可以查看选用芯片的数据手册作决定)
COM端接电源:
当输出端接感性负载的时候,负载不需要加续流二极管,芯片内部设计有二极管,只需 COM口接负载电源即可,当接其他负载时,COM口可以不接。
在使用阻容降压电路为 ULN2001D 供电时,由于阻容降压电压无法阻止电网上的瞬态高 压波动,必须在 ULN2001D 的 COM 端与地端就近接一个 104 电容,其余应用场合下, 该电容可以不添加。
#5、运算放大器
利用运放巧妙采集负载的当前电流,可以准确知道当前负载运行情况,有没有正常工作,非常好用。
GND2是负载的地端,通过R16电阻(根据负载电流的大小R16要选功率大一点的)接公共地,会有微小的电压差。
该电路是同相比例运算电路,所以采样端的电压=输入端电压*(1+R9/R11)=69倍的输入电压。大家可以根据测量范围修改R9调节放大倍数。
#6、MOS管
控制电源输出通断:
#7、输入电源
如果电路成本比较紧张,可根据需要适当删减元件。
F1自恢复保险丝:
过流保护,可根据实际负载电流调整阀值大小。
D10 肖基特二极管:
减少后级电源对前级的影响,防止电源正负接反烧坏后级电路,防止电源关电时电流倒灌,但经过二极管有0.4V左右压降,需要考虑经过0.4V降压后会不会低于后级电路的正常工作电压。
TVS管:
输入电压过高保护,一般取正常输入电压的1.4倍。
五、上下拉电阻会增强驱动能力吗
最近看到一个关于上下拉电阻的问题,发现不少人认为上下拉电阻能够增强驱动能力。随后跟几个朋友讨论了一下,大家一致认为不存在上下拉电阻增强驱动能力这回事,因为除了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输出结构只有下管,所以只能输出L和高阻(Hi-Z)两种状态,而高阻态是难以被电路识别的,所以需要合适的上拉电阻把高阻态转变为高态。
上图,OC(左)和OD(右)输出结构。
虽然OC和OD输出结构看起来很复古,使用时也需要外接电阻有点麻烦,但这种结构最大的好处就是可以做线与,也就是多个OC或者OD可以接到一起,只要其中一个输出L,总线就是L,这在多外设中断和电源时序控制方面很常用。
上图,OC/OD的线与接法。
I2C也是OC/OD结构,这样很轻松就能在一条数据线上双向传输数据而不需要额外的方向控制信号,而CAN总线则巧妙地利用线与特性来实现总线仲裁。
在处理OC或者OD电路的时候,一定要注意评估总线负载电容、上拉电阻与所需速度的关系,负载电容越大,速度越快,所需的上拉电阻要越小。比如I2C总线,如果只挂载了一片从设备,使用4.75kΩ的上拉电阻可能就满足400kHz的总线要求了,但如果挂了10片从设备呢,1kΩ的上拉电阻也不一定能搞定100kHz的总线速度,这种时候可能得考虑总线负载隔离或者降低总线速度了。
下图是在200pF负载电容情况下,上拉电阻为500Ω、1kΩ、2kΩ、4.75kΩ和10kΩ下的波形,可以看到上拉电阻越大,对电容充电速度越慢,所以上升沿也越慢,当上拉电阻不合适时上升沿已经严重变形,无法保证正常工作。
上图,OC电路不同上拉电阻对波形的影响。
逻辑反相器可以当成放大器来用!不是开玩笑,我还真见过产品上用这种骚操作的,只需要把反相器接成反向放大器就可以了,不过逻辑器件当线性器件用,性能嘛...
上图,逻辑反相器(非门)当成线性放大器用。