前阵子画一块数据采集板的原理图,用ST的抗辐射LVDS驱动器RHFLVDS31A做高速接口,四个通道里只用了三个。当时我想当然地以为,第四个通道既然不用,输入输出引脚空着就行,反正LVDS不像是普通单端逻辑那样容易出问题。结果板子回来后上电,整板3.3V电流比估算值高了大约35mA,那个空置通道的输入引脚电压在示波器上飘在0.8V到1.2V之间,对应的输出端还时不时冒出一段没有规律的小幅扰动。为这个现象查了整整两天,最后把RHFLVDS31A的未使用I/O引脚处理方式彻底捋了一遍。这篇笔记就是那段排障经历的完整记录,给正在用这颗芯片或者其他LVDS驱动器的朋友一个参考。
1. 四路驱动器里空着的那一路,为什么值得专门讨论
RHFLVDS31A是面向航天应用的四路LVDS差分驱动器,输入侧是TTL/CMOS逻辑电平,输出侧是标准LVDS差分信号。典型的输出差分电压是350mV(100Ω终端时),共模电压在1.2V附近,恒流源电流大约3.5mA。在星载数据采集、相机高速串行链路、载荷接口这些场景里,它出现得很频繁。和商用LVDS驱动器相比,它更看重抗总剂量和单粒子闩锁(SEL)指标,内部输入输出级都做过加固。但加固不代表引脚可以随意处置,特别是"不用"的引脚。
1.1 输入端悬空,远不是"状态不确定"这么简单
RHFLVDS31A的输入端是CMOS逻辑门结构,输入阻抗很高,对地漏电流只有微安级。引脚一旦悬空,节点电压不是稳定的逻辑0或逻辑1,而是由漏电流、板级耦合和芯片内部偏置共同决定的一个中间值。很多做数字电路的人都知道CMOS输入端悬空会"飘",但飘起来之后到底会发生什么,真正实测过的人不多。
飘动的输入会带来两个连锁反应。第一,输入电压落在逻辑阈值附近时,输出状态不确定,可能在两个逻辑电平之间缓慢游走甚至振荡。这个振荡幅度有时不大,普通逻辑分析仪看不出来,但通过芯片内部的衬底耦合和引脚间串扰,足以让相邻正常通道的抖动指标变差。第二,CMOS输入级在阈值附近时,PMOS和NMOS同时处于微导通状态,等效为一个通了电的热电阻,产生贯通电流。单个空置通道的功耗可能从正常的微瓦级抬升到毫瓦级,四个通道都空着,再叠加输出端不可控状态,整板功耗预算就很容易对不上。
1.2 输出端开路,恒流源会进入非标称工作区
LVDS驱动器的输出级本质上是电流开关,3.5mA恒流源在外部100Ω终端电阻上建立差分电压。如果输出对空置,没有外部负载回路,恒流源节点电压就失去了钳位,会向电源轨或地轨方向漂移,共模电压偏离1.2V标称值。这种情况下,芯片不一定立刻损坏,但输出波形特性和功耗都不可控,对后级没有影响不代表对系统没有影响——它可能通过共用电源和地平面把噪声散播到其他通道。
1.3 抗辐射器件的引脚处理,标准比商用器件更严格
商用板上LVDS驱动器的空置通道悬空,往往运行好几年也没出大问题。但航天设备的工作环境不同,带电粒子轰击会让一个半浮空节点产生瞬态电流,如果没有低阻抗路径把它泄放掉,轻则引起逻辑误翻转,重则触发寄生晶闸管效应。所以抗辐射设计里有一条基本要求:任何器件在任意时刻,每个引脚的电平都必须是确定的。这不是教条,而是从失效模式和危害性分析里总结出来的硬道理。
2. 输入侧接法:拉低、拉高还是串电阻,关键是别让CMOS门"半开半闭"
2.1 输入端悬空后的真实表现
用示波器量悬空输入引脚的静态电压,现象非常直观。我那块板上空置通道的输入引脚电压在0.8V到1.2V之间缓慢漂移,对应输出端偶尔能抓到几十毫伏的扰动,频率不固定,像噪声触发又不像。当时我用的是10MΩ有源探头,排除探头负载的影响后,确认就是引脚本身处于不稳定状态。
原因是CMOS输入级在阈值附近时,PMOS和NMOS都处在微导通区,输入节点等效为一个大电阻,任何微小的漏电流变化或者相邻信号线的耦合都会让电位发生偏移。这个状态最麻烦的地方在于,它不是完全的0也不是完全的1,而是介于两者之间的"半开半闭",你没法预测它在某个时刻会往哪个方向跑。
2.2 直接接地、直接接电源、串电阻,三种主流做法对比
处理未使用输入引脚,业内常见的有三种方案,我用表格整理一下优缺点,再说我的推荐。
| 处理方式 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 直接接GND | 状态最干净,静态功耗接近0,抗噪声能力最强 | 后期复用需要改板或飞线 | 飞行件、确定不用的通道 |
| 直接接VCC | 适合输入高电平为缺省态的设计 | 上电时序有要求,ESD二极管可能引入瞬态电流 | 需要默认高电平的逻辑 |
| 通过电阻下拉/上拉 | 保留调试灵活性,可限制辐射瞬态电流 | 阻值大抗噪差,阻值小有静态功耗 | 测试板、样机、可能要复用的通道 |
直接接GND是电气上最干净的方式,输入级PMOS完全关断,NMOS完全导通,静态功耗几乎为零。但如果这块板后续有复用需求,直接接地就不好改了。直接接VCC不是不行,只是要额外检查上电时序——如果芯片的VCC还没起来,外部VCC已经通过引脚和内部ESD二极管形成通路,可能会注入不期望的电流。通过电阻下拉或上拉则留了调整空间,常用的阻值是1kΩ到10kΩ。我在走线较长的板上用1kΩ,短走线用10kΩ,都能把引脚稳定在确定电平。阻值越大,抗噪声能力越差,这是物理规律。
抗辐射项目里经常有一个争论:到底直接接还是串电阻。我的建议很简单:飞行件且没有复用需求,直接接GND;工程样机或测试板,用0Ω电阻位做预留。0Ω电阻物理上和直接接一样,但板子回来想改方向,换个电阻或挪个跳线就行。
2.3 使能引脚要一起审查,别只盯着数据通道
如果封装上带使能控制脚,那"未使用通道"还有一个更省事的思路:把使能置为禁用态,让整个输出级进入高阻或禁用状态,输入端再给一个确定电平。这样输出侧的端接压力就小很多。我特别想提醒的是,使能脚本身也是一个CMOS输入,同样不能悬空。有些人处理了数据输入引脚,却把使能脚空着,等于前门关了后门开着。审查未使用I/O引脚时,把输入引脚、输出引脚、使能引脚三件事放在一起看,才不会漏。
3. 输出侧接法:恒流源遇到开路,比你想象的更"闹脾气"
3.1 LVDS输出开路时的内部状态
很多人对LVDS输出有一个误解,觉得它和普通推挽输出一样,空了就空了,无非是没波形。实际上LVDS驱动器输出极是恒流源结构,输出电流必须通过外部负载建立电压。没有100Ω终端电阻时,电流没有正常回路,输出节点电压会漂移。我在实测中观察到,开路状态下输出差分电压在0V到几百毫伏之间随机变化,共模电压偏离1.2V,甚至朝电源轨跑。
这种状态的危险不在立刻烧毁芯片——内部有限流机制,多数芯片扛得住。但悬空输出节点在辐射环境中更容易受到带电粒子影响,产生瞬态电压,瞬态电压通过PCB耦合到相邻通道,会让正常通道的误码率上升。所以即便输出开路不是立即致命,也要按隐患处理。
3.2 100Ω端接、直接短接、对地加电阻,三种方案实测对比
我在不同板子上试过三种处理方式,留下了一些实测印象。
方案一,在差分输出对之间焊一个100Ω电阻,模拟标准终端。这是最接近正常工作状态的做法。实测输出差分电压稳定,共模电压回到1.2V附近,恒流源完全工作在规格范围内。代价是这个通道仍然消耗约1.2mW,功耗预算里得算进去。方案二,把差分输出对的两个引脚直接短接,让3.5mA电流经过一个近似0Ω的路径。实测差分电压接近0,功耗比方案一略低,工作也稳定。但我对这个做法有个顾虑:输出对短接意味着恒流源在接近短路的条件下运行,短期没问题,长期可靠性我拿不准,所以只在测试板上试过,飞行件不建议。方案三,将两个输出引脚分别通过电阻接到GND,这个做法不推荐,会破坏差分结构,共模电压被强行拉低,电流分配不对称,输出级容易进入非标称工作状态。
我的推荐很明确:未使用的LVDS输出对用100Ω电阻端接,不要心疼那1mW功耗。端接电阻放在靠近芯片引脚的位置,走线尽量短。这样设计还有一个附带好处:以后如果把这一路改成复用,直接去掉终端电阻、接入后级负载就行,硬件不用大改。
3.3 端接功耗到底增加了多少,算给你看
很多人一听"空置通道还要加电阻"就觉得浪费功耗。其实算下来非常小:LVDS恒流源3.5mA,在100Ω电阻上产生0.35V压降,功率是0.35V乘以3.5mA,约1.2mW。而一个悬空的输入在CMOS半导通状态下,加上输出端不可控状态,合计功耗做不好能到20mW以上。也就是说,规规矩矩端接比"空着"在功耗上反而更省。这个反直觉的结果,是我当时排查功耗异常时最大的收获之一。
4. 上电时序、电源域和辐射环境:引脚接法背后的三个"附加题"
4.1 ESD二极管和上电瞬态
把未使用输入接到GND或VCC时,要注意上电瞬间的电流路径。CMOS输入引脚内部通常有一对ESD保护二极管,一个指向VCC,一个指向GND。正常工作时它们都不导通,但如果某一电源轨晚于另一个起来,外部电路就可能通过引脚向ESD二极管注入电流。输入端下拉到GND,一般问题不大。但如果上拉到外部VCC,而这个外部VCC比芯片自己的电源轨先稳定,就会形成一条从外部VCC经过ESD二极管到芯片内部地或电源的瞬态通路。
这个瞬态电流在常温下可能只是造成初始状态不确定,但在辐射环境中会提高闩锁敏感度。所以我的习惯是:凡是要把未使用CMOS输入接到电源轨的,先查上电时序表,确认目标电源轨比芯片电源轨更早稳定,或者干脆在引脚和VCC之间串一个1kΩ电阻,把瞬态电流限制在毫安级以下。
4.2 空置通道和相邻通道的串扰
PCB布线时,空置通道的引脚往往位于连接器附近,一不留神就会留出一段长走线。这段走线一头接芯片引脚,另一头悬空或接固定电平,本质上就是一根天线。接固定电平时还好,悬空的话,旁边任何高速信号翻转都会在上面耦合出感应电压。
我在实测里遇到过很典型的情况:旁边一路LVDS以50MHz翻转时,空置通道的输入引脚上能观察到约300mV的耦合波形。对典型LVCMOS阈值1.5V来说,300mV还不足以翻转,但如果是在辐射环境下再叠加一个单粒子扰动,误翻转的可能性就不能忽略了。所以处理未用引脚时,引脚本身要接对,走线也要尽量短,不要为"未来扩展"留一根长长的空走线。
4.3 "每个引脚都要有确定状态"在抗辐射设计里的分量
航天电子有一个基本要求:任何器件在任意时刻,每一个引脚的电平都必须是确定的。这句话直接关系到SEL和SEU敏感度。一个处于半浮空的CMOS栅极,在重离子轰击下产生瞬态电流时,几乎没有恢复能力,很容易把芯片拖入闩锁状态。RHFLVDS31A本身经过SEL加固,但加固不等于绝对免疫,外部回路越干净,芯片的抗辐射表现越好。
引脚处理应当遵守三个层次:第一,所有输入不能悬空;第二,所有输出不能处于不可控状态;第三,引脚连接的远端——接插件、线缆——也要保证没有浮空导体。第三个层次是很多人忽略的。板上处理得很干净,但接插件某一针没接线,远端悬空,复测时照样能发现耦合问题。
5. 实测验证:从"整板功耗偏高"到"引脚全部稳了"的排查链路
5.1 问题复现:功耗异常是空置引脚给的第一封信
我最初那块板的现象很明确:整板3.3V电流比估算值高了约35mA。35mA在星载设备里不算小,热设计上都可能产生连锁反应。排查的时候,我先做了几件事:断开后级负载,确认不是末端电路的问题;对比同型号另一块只用了两路LVDS的板子,确认不是芯片批次问题;最后把示波器探头放到了空置通道的输入引脚上。
一测就看到了前面说的漂移现象。当时我判断这至少是功耗异常的来源之一:悬空输入导致CMOS输入级处于半导通状态,加上输出端不可控翻转,动态功耗叠加起来,完全可能产生几十毫安的额外电流。为了验证这个判断,我把空置通道的输入引脚直接短路到GND,再测整板电流,立刻降了一大截。这一步基本锁定了问题。之后再做的处理就是正式方案了。
5.2 处理前后的实测数据对比
最终的处理方案是:输入引脚用1kΩ电阻下拉到GND,因为那段走线比较长,1kΩ比10kΩ更能抗耦合;输出差分对用100Ω电阻端接,让恒流源工作在正常状态。处理完成后,我重新测了一组数据。
| 测试项 | 处理前 | 处理后 |
|---|---|---|
| 空置输入引脚静态电压 | 0.8V~1.2V漂移 | 0V |
| 空置输出差分电压 | 幅值随机变化的扰动 | 固定约-348mV,无扰动 |
| 输出共模电压 | 偏离1.2V,不稳定 | 1.2V稳定 |
| 整板3.3V电流 | 比估算高约35mA | 恢复至估算值内 |
这里的-348mV是输入端固定为低电平时,输出差分对的稳定状态,方向和幅度由输入电平和恒流源决定。它看起来是一个恒定的直流电平,但这是正常的——输入固定,输出就固定,关键是它不再扰动,也不再消耗额外功耗。
5.3 验证时的几个细节
验证时有三点容易被忽视。第一,探头地线要短,测量差分信号用差分探头,不要用两根单端探头相减,否则共模噪声会掩盖真实信号。第二,功耗测量要看稳态,刚上电时可能有瞬态电流,要等几分钟让板子热稳定后再记录。第三,如果条件允许,做一次温度循环,引脚虚焊或电阻虚焊在常温下可能不显现,温度变化时才暴露。
另外,复查未使用引脚时,别忘了检查使能脚、复位脚这类控制类输入。它们同样是CMOS输入,同样不能悬空。我的习惯是画原理图时把这些引脚的网络标签统一命名,比如"NC_IN_GND""NC_OUT_TERM",这样在设计评审和生产阶段不容易漏。
板子调完到现在,我把这套处理方式固化成模板了:输入下拉到GND,预留0Ω电阻位;输出差分对用100Ω端接;使能脚按禁用电平接好;所有空置通道的PCB走线尽量短,且不跨越其他高速信号。这个模板不只在RHFLVDS31A上用,在其他LVDS驱动器和接收器上也奏效。如果你正在画类似的板子,建议在原理图评审时专门加一条检查项:全板所有芯片的未使用引脚,逐一列出处理方式。这条检查项看起来很琐碎,但确实能拦住大部分"上电后功耗对不上"的返工——纸上画一个100Ω电阻花不了十秒钟,板子回来后飞线改焊接要花一整天。