1. TTL 与 CMOS 的分野:先搞清楚你在比工艺还是比电平
硬件这行有个挺有意思的现象,新手问"TTL 和 CMOS 有什么区别",老手往往会反问一句"你说的是工艺还是电平"。这两个词在行业里被用得太随意,同一个词有时指制造工艺,有时指接口电平规范,混淆之后讨论就会跑偏。我自己带过几个做嵌入式的小朋友,画原理图时把一颗 3.3V 的逻辑器件输出直接怼到 5V 供电的模块输入上,理由就是"我看两边都是 TTL 电平啊",结果上电后模块输入端的钳位二极管发热,通信时好时坏。这类问题的根子不在电路水平,而在概念层没分清。
这篇内容想做的事情很具体:把 TTL 和 CMOS 这两个概念拆到能指导实际接线的程度。包括它们的电平门限怎么读、噪声容限怎么算、功耗差在哪、驱动能力怎么核、两种电平互连时有哪几种可行方案、示波器上看到什么样的波形说明接错了。看这篇的人最好手上正有一块板子在调,或者正准备选型,跟着往下走能直接对照自己的原理图改。完全没接触过数字电路的读者也能看,我会尽量用生活化的比方把关键概念铺开,但专业参数不会含糊,该给的数字一个不少。
1.1 两个词被绑定的历史原因
TTL 全称是晶体管-晶体管逻辑,它诞生于双极型晶体管主导的年代。早期数字电路用分立元件搭,后来把逻辑门集成到一颗芯片里,输入端用多发射极三极管做与逻辑,输出级用推挽结构,这就是标准 TTL 的雏形。那个年代供电统一是 5V,于是围绕 5V 供电形成了一整套电平规范:输出高电平不低于 2.4V,输出低电平不高于 0.4V,输入高电平至少要 2.0V 才认,输入低电平要低于 0.8V 才认。这套数字后来被行业固化下来,成了所谓"TTL 电平"。
CMOS 是互补金属氧化物半导体,输入端是一对互补的 MOS 管栅极,栅极几乎不耗电流,输出端是 PMOS 和 NMOS 组成的推挽。它的电平规范不绑定 5V,而是按供电电压的比例来定,通常输入高电平要求大于 0.7 倍电源电压,输入低电平要求小于 0.3 倍电源电压。这个差别非常关键:TTL 电平是绝对值规范,CMOS 电平是相对值规范。
之所以两个词总被绑在一起说,是因为在 5V 时代,5V 供电的 CMOS 器件为了兼容当时海量的 TTL 外围,把输入门限刻意做成了 TTL 兼容的 2.0V / 0.8V。于是"5V CMOS 能直接替换 TTL"成了常识,久而久之大家就把两者当成一回事了。等到 3.3V、1.8V 供电普及,CMOS 的电平规范随电源缩放,而 TTL 规范还锚定在 5V 的老数字上,裂缝就出现了。
1.2 工艺层面的本质差别
抛开电平不谈,两种工艺的电气行为差异很大,这直接决定了你选谁。
TTL 是电流控制器件,输入端在低电平时会向外灌出电流,典型值是每个输入 0.4mA 左右,高电平时输入电流很小。这意味着 TTL 的输入端不能悬空,悬空时它等效于高电平,但在强干扰环境下会被误判。TTL 的输出级灌电流能力强、拉电流能力弱,这个不对称是它的标志性特征。
CMOS 是电压控制器件,栅极下面是一层极薄的氧化层,等效为一个小电容,静态时几乎不耗电流,输入阻抗在兆欧甚至吉欧量级。它的输出级上下管对称,拉和灌的能力基本一致。但栅极那层薄氧化层很脆弱,输入电压超过电源电压或者低于地电位时,输入保护二极管会导通,电流大了会触发寄生晶闸管形成闩锁,轻则功能异常,重则芯片直接烧毁。
用生活里的例子类比:TTL 输入像个需要持续喂水的水车,你得给它一股稳定的水流它才转;CMOS 输入像个静电感应的开关,你只要把电压"贴"上去它就有反应,不需要电流。这个差别解释了后面所有的功耗、驱动、悬空处理问题。
1.3 常见家族参数横向对照
实际选型时看到的是具体系列而不是"TTL"或"CMOS"这两个大类,下面这张表把几类常见系列的典型参数摆在一起,方便对照。数据取自各系列的通用规格书典型值,具体型号仍要以手册为准。
| 系列类型 | 典型供电 | 输入高门限 | 输入低门限 | 输出高最低 | 输出低最高 | 单门静态功耗 | 特点 |
|---|---|---|---|---|---|---|---|
| 标准 TTL | 5V | 2.0V | 0.8V | 2.4V | 0.4V | 约 10mW | 老器件,速度慢,功耗大 |
| 低功耗肖特基 TTL | 5V | 2.0V | 0.8V | 2.4V | 0.4V | 约 2mW | 速度提升,仍在产 |
| 5V CMOS | 5V | 3.5V | 1.5V | 4.9V | 0.1V | 微瓦级 | 门限按比例,抗扰强 |
| TTL 兼容 5V CMOS | 5V | 2.0V | 0.8V | 4.9V | 0.1V | 微瓦级 | 最常用的替换品 |
| 3.3V LVCMOS | 3.3V | 2.0V | 0.8V | 2.4V | 0.4V | 微瓦级 | 现代主流 |
| 1.8V CMOS | 1.8V | 1.26V | 0.54V | 1.7V | 0.1V | 微瓦级 | 低功耗系统 |
注意表里 3.3V LVCMOS 那一行,它的门限数字和 5V TTL 一模一样,都是 2.0V / 0.8V。这就是很多人误判的源头:门限相同不代表可以直接互连,输出摆幅和输入耐压是另外两回事,后面会展开算。
2. 门限电压与噪声容限:能不能直连的硬指标
判断两种逻辑能不能直接对接,靠感觉没用,要算。算的核心就是噪声容限,它回答的问题是:发送端最差情况下的输出电平,距离接收端的判定门限还剩多少余量。余量够,干扰进来也不会误判;余量不够,一根稍长的走线就能让系统随机出错。
2.1 四个门限参数的定义
规格书里跟电平有关的参数有四个,必须搞清楚各自的含义,否则算出来的东西没意义。
输入高电平门限 VIH,指接收端能被可靠识别为逻辑 1 的最小输入电压。低于这个值,接收端不保证认成 1。输入低电平门限 VIL,指接收端能被可靠识别为逻辑 0 的最大输入电压。高于这个值,不保证认成 0。这两个是接收方指标。
输出高电平 VOH,指发送端在规定的拉电流条件下能给出的最低高电平。输出低电平 VOL,指发送端在规定灌电流条件下能给出的最高低电平。这两个是发送方指标。
关键在于这四个值都带条件。VOH 是在某个负载电流下测的,负载加重,VOH 会往下掉。很多人在空载下测量觉得电平很漂亮,一接上负载就塌了,就是这个原因。所以看手册不能只看数字,要看数字后面的测试条件,通常标注为 IOH 和 IOL。
2.2 噪声容限的完整计算演示
噪声容限分高电平容限和低电平容限两个,公式不复杂:
- 高电平噪声容限 VNH = VOH(min) − VIH(min)
- 低电平噪声容限 VNL = VIL(max) − VOL(max)
拿 5V 标准 TTL 自己对接自己来算一遍。VOH 最低 2.4V,VIH 最低 2.0V,VNH = 0.4V。VIL 最高 0.8V,VOL 最高 0.4V,VNL = 0.4V。两个方向都是 0.4V,看起来不大,但在同一块板子、短线连接、良好地平面的条件下是够用的,这也是 TTL 能在几十年里稳定工作的原因。
换成 5V CMOS 自己对接自己。VOH 最低 4.9V,VIH 最低 3.5V,VNH = 1.4V。VIL 最高 1.5V,VOL 最高 0.1V,VNL = 1.4V。CMOS 的噪声容限接近电源电压的 30%,这也是它在工业干扰环境下更受欢迎的原因。
现在看关键的一步:5V TTL 输出驱动 5V CMOS 输入。VOH 2.4V 减去 VIH 3.5V,结果是负 1.1V。负的噪声容限意味着在最差情况下,TTL 的高电平根本达不到普通 5V CMOS 的识别门限。所以标准 TTL 不能直接驱动普通 5V CMOS,必须选 TTL 兼容输入的那种 CMOS 系列,它的 VIH 是 2.0V 而不是 3.5V。这个坑我在早期项目里踩过,当时用了一颗老型号的 4000 系列门电路做接口,输入来自 TTL 计数器,结果高电平时不时丢一个脉冲,查了两天才发现是门限不匹配。
2.3 5V 输出接 3.3V 输入的两种翻车方式
这是现在最常见的互连场景,也是问题最多的。很多人看到 3.3V LVCMOS 的 VIH 是 2.0V,5V TTL 的 VOH 最低 2.4V,算出容限 0.4V,觉得没问题就接了。实际上有两个独立的坑。
第一个坑是稳态电平不够。VOH 2.4V 是在 IOH 为负 0.4mA 的条件下给出的。如果你的负载比较重,比如多个输入并联,或者走线带来了额外负载,实际 VOH 会低于 2.4V。一旦掉到 2.0V 以下,接收端就识别不了了。所以真正靠谱的算法是拿实际负载条件下的 VOH 去算,而不是手册上的最小值。
第二个坑更隐蔽:输入耐压。3.3V 供电的 CMOS 器件,输入端的保护二极管接在输入引脚和 VDD 之间。当 5V 的高电平加到 3.3V 的输入脚上,保护二极管正向导通,电流从 5V 电源经二极管灌进 3.3V 电源轨。这个电流小则几毫安,大则上百毫安,后果是 3.3V 电源被抬高、器件发热、长期可靠性下降。很多人测波形时发现高电平被钳在 3.3V 加一个二极管压降的位置,就是这个问题。
解决方式只有两种:要么确认器件手册明确标注了输入可以耐 5V(业内叫 5V 容忍输入),要么加电平转换。前者不是所有器件都有,看手册的时候一定要翻到绝对最大额定值那一页确认,不能凭经验假设。
2.4 扇出与驱动电流的核算方法
扇出指的是一个输出能带多少个同类输入。TTL 时代这是个硬指标,因为输入确实吃电流。算法很直接:分别算高电平和低电平方向的扇出,取小的那个。
以低功耗肖特基 TTL 为例,输出低电平时最大灌电流 IOL 是 8mA,每个输入在低电平时灌出电流 IIL 最大 0.4mA,低电平扇出 = 8 / 0.4 = 20。输出高电平时最大拉电流 IOH 是负 0.4mA,每个输入高电平时输入电流 IIH 最大 20µA,高电平扇出 = 400 / 20 = 20。两个方向都是 20,理论扇出 20。但工程上没人顶着上限用,一般取一半,也就是 10 个。原因是输出电流接近上限时,VOL 会明显抬高,噪声容限被吃掉。
CMOS 的扇出算法完全是另一套逻辑。输入漏电流在纳安级,按电流算扇出能到几千,没有实际意义。真正的限制是容性负载:每个输入栅极等效几皮法电容,并联越多,输出端的总电容越大,上升下降沿越慢,传输延迟越大。所以 CMOS 的扇出不是一个固定数字,而是看你要求的速度。要跑高速就少带几个,跑低速可以多带。
3. 功耗、速度与驱动:选型时真正要权衡的三件事
选 TTL 还是 CMOS,很多时候不是电平问题,而是功耗和速度的取舍。这两个指标在两种工艺里的表现完全相反,理解背后的物理机制,选型时就不会摇摆。
3.1 静态功耗与动态功耗的量化差异
TTL 的功耗特点是静态就大。每个门内部有多发射极三极管和偏置电阻,即使不翻转也在持续消耗电流。标准 TTL 单门静态功耗约 10mW,低功耗肖特基约 2mW。一颗 20 门的小规模集成芯片,静态功耗就是几十毫瓦。这在电池设备里是不可接受的,但在市电供电的机箱设备里无所谓。
CMOS 的静态功耗几乎为零。栅极是绝缘的,不翻转时没有电流通路,只有极小的漏电流,纳安级。它的功耗主要来自翻转时的动态功耗,来源是给栅极电容充放电。这个功耗可以用一个很经典的公式估算:
P = C × V² × f
其中 C 是负载电容,V 是电源电压,f 是翻转频率。举个实际例子,3.3V 供电,负载电容 50pF,翻转频率 10MHz,代入得 P = 50×10⁻¹² × 3.3² × 10×10⁶ ≈ 5.4mW。注意这里每个门的动态功耗跟频率成正比,频率翻倍功耗翻倍。
这个公式解释了一个反直觉的现象:低频场合 CMOS 功耗远低于 TTL,但高频场合 CMOS 的动态功耗会追上甚至超过 TTL。所以现代高速数字系统里,功耗管理的核心手段是降电压和降翻转率,而不是简单换个工艺。V² 这一项意味着电压从 5V 降到 3.3V,动态功耗直接降到原来的 43%,这是低压化最直接的动力。
3.2 速度不只取决于工艺
很多人以为 CMOS 一定比 TTL 快或者慢,这说法不成立,得看具体系列。早期的 4000 系列 CMOS 速度很慢,传输延迟在百纳秒量级,只适合低频场合。后来的高速 CMOS 系列把延迟压到几纳秒,跟低功耗肖特基 TTL 打平甚至更快。
真正决定速度的是输出级的充放电能力和负载电容的比值。TTL 输出级是双极型晶体管,跨导大,驱动能力强,充放电快。CMOS 输出级的 MOS 管导通电阻相对大一些,但可以做大尺寸来降低电阻。所以速度对比没有绝对结论,必须落到具体型号的传输延迟参数上。
还有一个容易被忽略的因素是边沿速率和信号完整性的关系。边沿越陡,包含的高频分量越丰富,走线阻抗不连续引起的反射越明显。TTL 的摆幅小、边沿陡,在长走线上反而容易出振铃。CMOS 摆幅大、边沿相对缓,抗反射能力好一些,但摆幅大意味着翻转时的 dv/dt 大,对邻近走线的串扰更强。这个取舍在高速布线上必须考虑。
3.3 灌电流与拉电流的不对称
TTL 输出级的上管是射极跟随器结构,下管是饱和导通的三极管。拉电流时上管有基极压降,输出高电平会随拉电流增大而明显下降;灌电流时下管深度饱和,输出低电平能保持得很稳。这就形成了 TTL 灌强拉弱的特点,典型数据是灌电流 8mA 到 16mA,拉电流只有 0.4mA 到 1mA。
CMOS 输出级上下管是对称的,拉和灌能力基本一致,典型值各 4mA 到 24mA 不等,看具体型号。
这个不对称在驱动 LED 时特别明显。用 TTL 门直接拉电流点亮 LED,高电平时输出会塌到 1V 多,LED 亮度很暗甚至不亮。正确的接法是让 LED 接在电源正极和输出脚之间,用灌电流的方式点亮,低电平时 LED 亮。用 CMOS 就没这个限制,两种接法都行,但仍要注意总功耗和单脚电流上限。
3.4 多余输入端的处理规矩
这一条是新手最容易忽略的,也是现场故障的高发区。
CMOS 器件的输入端绝对不能悬空。栅极悬空时电位不确定,可能停在电源和地之间的线性区,导致上下管同时导通,产生很大的贯穿电流,功耗剧增,芯片发热,同时输出会振荡。我见过一块板子因为一片逻辑芯片的四个多余输入没处理,整板温升比预期高了十几度。处理方法很简单:不用的输入根据逻辑需要接 VDD 或 GND,或者与其他已使用的输入并联。注意不能只接一个电阻就悬空,必须给确定的电平。
TTL 的输入端悬空在电气上等效于高电平,看似安全,但这只是直流特性。悬空引脚是高阻节点,容易拾取干扰,在电磁环境差的场合会导致误翻转。所以规范做法同样是接固定电平,不要依赖"悬空等于高"这个特性。
多余输出端必须悬空,不能接电源也不能接地,否则输出翻转时会形成短路大电流,直接损坏芯片。这一点两种工艺一样。
4. 互连与电平转换:把两种电平接到一起的四种做法
前面把原理铺完了,这一节讲实际动手。两种电平对接,方案不止一种,每种都有适用边界,选错的代价往往在调试阶段才暴露出来。
4.1 直接连接的前提条件
直接连是最省事的方式,但必须同时满足三个条件。
第一,发送端的最小输出高电平要大于接收端的最大输入高门限,且留有余量。余量至少 0.2V,最好 0.4V 以上。
第二,发送端的最大输出电压不能超过接收端的输入绝对最大额定值。这一条经常被忽略,尤其 5V 驱动 3.3V 的场景,必须翻手册确认接收端是否 5V 容忍。手册里写"输入电压范围 −0.3V 到 VDD+0.3V"的,就是不支持 5V 输入。
第三,两者的逻辑极性、上下拉状态、上电时序要一致。上电时序不一致会导致某个瞬间发送端已经输出高,接收端还没上电,电流经保护二极管倒灌,这个现象在热插拔或者分路供电的系统里很常见。
三个条件里任何一条不满足,就得用下面的转换方案。
4.2 电阻分压与串阻限流的边界
电阻分压是最直观的降压手段。5V 降到 3.3V,用两个电阻分压,比例 0.66。选 1k 和 2k,空载输出是 5 × 2/3 = 3.33V,看起来正好。但这个方案有三个硬伤。
第一,分压网络是持续的直流通路,5V 经 3k 电阻到地,静态电流 1.67mA。如果要转十路信号,就是十几毫安的额外功耗,低功耗系统受不了。
第二,带载能力极差。接收端输入虽然漏电流小,但输入电容在边沿到来时会产生瞬态电流,分压点的电压会被拉偏。负载越重,高电平越低。一旦低于 2.0V,信号就废了。改善的办法是把电阻值整体减小,但静态功耗又上去了,是个死循环。
第三,边沿变缓。分压点对地有等效电容,加上电阻,形成一个 RC 低通,上升时间被拉长。速度稍高就会导致时序余量不足。
串阻限流的思路是在发送端和接收端之间串一个电阻,靠接收端的保护二极管把电压钳住,电阻限制钳位电流。常见取值是 1k 到 10k。这个方案只适合低速信号,因为电阻和输入电容形成的 RC 同样会拖慢边沿,而且钳位电流会注入接收端的电源轨,大量信号同时钳位会把 3.3V 电源顶高。双向信号更不能用,两个方向都会钳位。
4.3 专用转换器件与开漏上拉方案
专用电平转换芯片是最稳的方案。内部结构通常是双电源供电,A 侧接低压,B 侧接高压,中间用一对互补的 MOS 管或者方向控制逻辑。优点是双向自动识别方向、边沿快、驱动能力强、两边电平规范都能满足。缺点是成本增加,每路几毛到几块钱不等,而且需要两个电源轨都到位。
选这类器件时看三个参数:支持的电压范围、最大数据速率、是否有方向自动检测。双向信号必须选带自动方向检测的型号,否则需要额外的方向控制引脚,布线更复杂。
开漏加外部上拉是另一种经典做法。把低压侧器件的输出配置成开漏,上拉到目标电压,就能实现降压。比如 3.3V 器件驱动 5V 输入,输出开漏,上拉到 5V,高电平时靠上拉电阻把线拉到 5V,低电平时器件内部下管导通把线拉低。注意前提是低压器件本身要能耐受 5V,因为开漏输出关断时,外部上拉会把 5V 加到它的漏极上。
上拉电阻的取值要算。阻值太大,上升沿慢,高速信号来不及建立;阻值太小,低电平时的灌电流大,可能超出器件 IOL 上限。经验算法是取 RC 时间常数小于比特周期的十分之一。假设走线加输入电容总共 20pF,目标速率 1MHz,周期 1µs,上升时间预算 100ns,则 R = 100ns / 20pF = 5kΩ。取 4.7k 是常见值。如果速率到 10MHz,就得降到 470Ω 左右,这时要回头核对灌电流是否超限。
4.4 走线、去耦与上电时序的细节
电平转换方案定了,剩下的细节决定稳定性。
走线方面,转换前后的信号尽量短,尤其是分压和串阻方案,走线越长分布电容越大,边沿越差。转换器件的地引脚要用最短路径接到地平面,回流路径不连续会引入共模干扰。
去耦方面,每颗逻辑芯片的电源脚旁边都要放一个 0.1µF 的陶瓷电容,位置尽量贴近引脚。TTL 器件翻转瞬间的电流尖峰比 CMOS 大,去耦要求更高。跨电源域的信号线旁边不要走敏感的模拟线,5V 摆幅的信号串扰能力比 3.3V 强。
上电时序方面,双电源系统要保证两个电源的相对时序。如果高压侧先上电,低压侧后上电,在低压侧未上电期间,高压侧输出的信号会经保护二极管灌入低压侧电源轨。解决办法是在信号线上串联限流电阻,或者选用带断电保护功能的转换器件,或者用使能信号控制,等两边电源都稳定后再开放信号通路。
5. 实测与排查:用示波器把问题钉死
纸面算得再好,最终要落在波形上。电平问题的排查有一套固定的路径,按这个路径走,绝大多数问题能在半小时内定位。
5.1 测量前的探头与接地准备
先说测量本身。数字信号的边沿很快,用普通的长地线夹去测,测出来的波形全是振铃和过冲,那是探头引入的,不是电路本身的。正确做法是拔掉地线夹,用探头自带的接地弹簧,直接顶在芯片引脚旁边的地过孔上。这样测出来的波形才可信。
探头衰减比要选对。测 5V 信号用 10:1 探头,带宽至少是信号最高频率分量的三到五倍。用 1:1 探头在高速信号上会引入很大的容性负载,本身就会改变电路行为。
测量点位也有讲究。不要只在发送端测,要在接收端的引脚上测。发送端波形漂亮接收端一塌糊涂的情况太常见了,问题就出在走线上。同时测发送和接收两端,用双通道对比,能立刻看出是驱动问题还是传输问题。
量程设置要覆盖整个摆幅并留余量。测 5V 信号把垂直档位设到 2V/格,能看全 0 到 5V。触发方式用边沿触发,触发电平设在中间位置,比如 2.5V 或者 1.65V,具体看信号摆幅。时基设置要能看到至少一个完整的上升沿和下降沿,通常根据信号周期定,看到两三个周期比较合适。
5.2 典型异常波形与对应病因
下面这张表是我这些年整理出来的对照关系,看到某类波形,基本能锁定病因。
| 波形现象 | 最可能的原因 | 验证方法 |
|---|---|---|
| 高电平被钳在 3.3V 加 0.7V 附近 | 5V 信号灌入 3.3V 器件的输入保护二极管 | 断开连接看高电平是否恢复 5V |
| 高电平缓慢爬升,到不了门限 | 上拉电阻过大或负载电容过大 | 减小上拉电阻后复测 |
| 上升沿有台阶 | 走线阻抗不连续,存在反射 | 缩短走线或加串阻匹配 |
| 低电平抬到 0.6V 以上 | 灌电流超限或地回路阻抗过大 | 测地平面压降,减少并联负载 |
| 边沿有振铃,幅度超过电源 | 走线过长,缺少端接 | 加 22Ω 到 33Ω 串阻 |
| 信号随机丢脉冲 | 噪声容限不足或门限不匹配 | 对照两端 VIH/VOH 重新核算 |
| 空闲时引脚上有高频振荡 | CMOS 输入悬空 | 将该输入接固定电平 |
有一点要特别说明:示波器上看到的"过冲"不一定是问题。只要过冲幅度没有超过器件的绝对最大额定值,且持续时间很短,通常不会造成损坏。真正危险的是持续的高压钳位,那会产生持续电流。
5.3 现场排查速查表
真到了现场,时间紧,按下面的顺序走效率最高。
第一步,确认供电。用万用表量两端器件的实际供电电压,不要相信原理图上标的。供电不对,后面全白搭。曾经遇到过 3.3V 稳压器实际输出 3.0V 的情况,VIH 刚好卡在临界点上,温度一变就出问题。
第二步,确认静态电平。让发送端固定输出高,量接收端引脚电压;固定输出低,再量一次。两次都落在接收端的识别区间内,静态就过了。这一步能排掉一大半问题。
第三步,确认动态波形。让信号跑起来,看边沿、看占空比、看是否有毛刺。如果静态正常动态异常,问题在边沿速率或串扰。
第四步,确认时序。用逻辑分析仪抓两路信号的相对时序,看建立时间和保持时间是否满足。电平对了但时序不对,同样会出错。
第五步,做温度和时间测试。很多电平问题在常温下不显现,温度升高后器件门限漂移,问题才冒出来。有条件的话做个高低温循环,能提前发现隐患。
6. 踩坑记录与实战建议
原理讲完,剩下的都是从实际项目里攒下来的经验。这些东西手册上不会写,但每一条都对应过真实的故障。
6.1 几个容易被忽略的隐性负载
第一类是测试点和调试接口。板子上留的排针、测试点本身有电容,探针接上去又是一份负载。调试阶段一切正常,量产去掉测试点后时序反而变了,这种反向故障我遇到过一次。所以评估负载时要按最坏情况算,把测试点的电容算进去。
第二类是连接器和线缆。板间连接器、排线、同轴线的分布电容和电感比板上走线大得多。一根 20cm 的排线,分布电容可能到几十皮法,足以把上升沿拖慢一倍。跨板信号一定要按传输线对待,加端接或者降速。
第三类是保护器件。TVS 二极管、ESD 保护阵列本身有结电容,几皮法到几十皮法不等。放在高速信号线上会明显劣化边沿。选型时要看电容参数,高速线用低电容型号。
第四类是多电源域的地电位差。两块板子各自供电,地线之间有几毫伏到几百毫伏的电位差。这个差值直接吃掉噪声容限。长距离互连要用差分或者隔离,单端信号在大地电位差下靠不住。
6.2 我的选型决策顺序
最后说说我自己拿到一个新设计时的判断顺序,供参考。
先看供电。系统里有几路电源,主逻辑电压是多少。这一条基本圈定了候选范围。
再看速度。信号最高频率是多少,边沿要求多快。低速场合优先选 CMOS,静态功耗优势明显。高速场合看具体延迟参数,不要笼统比较工艺。
然后看电平兼容性。把所有需要互连的器件列出来,逐个对照 VIH、VIL、VOH、VOL,算噪声容限。容限小于 0.2V 的接口一律加转换,不要赌。
接着看驱动能力。核算扇出和总负载电容,超过能力就加缓冲器。缓冲器不贵,返工很贵。
最后看成本和供货。这一条放最后不是不重要,而是前面的条件不满足,再便宜也没用。实际项目里我倾向于选已经验证过的系列,新器件除非有明确优势,否则不轻易换。
关于 5V 和 3.3V 混用的系统,我个人的习惯是:能在 3.3V 域内解决的信号就不要跨到 5V 域,跨域信号一律走专用转换器件,不用电阻分压凑合。多花的那点成本,比起调试阶段熬夜查波形的时间,实在太划算了。还有一条,凡是跨域的接口,原理图上必须标注清楚两端的电平标准和是否耐压,这一条写进团队规范后,类似的接口问题少了八成。
真要说还有什么体会,就是别迷信"它们是兼容的"这种说法。TTL 和 CMOS 的兼容性从来都是有条件的,条件写在手册的测试栏里,写在绝对最大额定值里,写在应用笔记的小字里。把这些条件找出来、算清楚,电路自然就稳了。