ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

高速PCB设计核心:差分信号与时钟同步布局布线实战

高速PCB设计核心:差分信号与时钟同步布局布线实战 这阵子在整理一版高速采集板的时候又翻出之前EMC预测试的记录第一版板子USB 2.0和LVDS接口都在跑送测前先在实验室自测结果误码率高得离谱辐射还超出限值。当时拿着示波器一点一点查最后定位到三个问题叠在一起——差分对长度差出了几十mil、差分对下方地平面被一个长槽切断、时钟线又贴着DCDC电感走了一段。这三个问题单拎出来都不算大事但在高速PCB里凑到一起板子就不给你好脸色看了。这篇文章就顺着这条线把做高速PCB设计绕不开的两个核心——差分信号和时钟同步——从原理讲到布局布线再讲调试排障。不管你是正在做第一块高速板子的硬件工程师还是想复用别人方案、搞明白为什么“照着画还能翻车”的朋友应该都能找到有用的东西。1. 差分信号到底是什么为什么高速板必须用它1.1 从“两根线”说起信号是“差值”的事很多人接触差分信号是从USB、RS485或者LVDS开始的知道要“两根线一起走”但真被问到“为什么能抗干扰”的时候反而容易卡壳。其实核心就差在一句话差分传输不关心任何一根线对地的绝对电压只关心两根线之间的电压差。假设一对差分线分别叫P和N接收端实际上在看Vp - Vn这个差值。如果外界进来一个共模噪声比如电机启动瞬间让地电位整体抖了一下这个噪声会同时叠加到P和N上结果差值基本不变。这就是所谓的共模抑制也是差分信号在工业现场、高速长线传输场景里特别吃香的根本原因。拿生活里的例子打比方两个人抬一桶水水的量是信号两个人都被一阵风吹偏了但这个“偏”是同步的桶里的水没洒接收端看到的还是那桶水。单端信号就不一样它只靠一条线对地的电压表示0和1地一抖信号就跟着错。更直白地说单端信号的参考地是全板统一的0V但地平面不同位置的电位其实不完全一样电流一大会出现地弹参考点一漂信号幅度自然受影响。差分信号不依赖绝对地电平所以在这方面天然占优。我列一个常见差分标准的简单对照方便新手对比理解标准典型差分阻抗常见用途电平特点RS485120Ω工业总线、长线传输差模电压范围大抗干扰强USB 2.090Ω通用外设连接高速模式差分摆幅约400mVLVDS100Ω显示接口、Camera Link、高速ADC数据低摆幅约350mV高速低功耗千兆以太网100Ω网络通信同时传数据和电源PoEHDMI100Ω音视频传输四对差分信号时钟对这张表是做layout时定阻抗目标的原始依据下面章节会细讲怎么落地。1.2 线扫相机差分信号和RS485工业场景里都在用同一套逻辑线扫相机这个名词这几年在机器视觉、工业检测领域出现频率很高。很多搞软件的同事第一次听到“线扫相机差分信号”会懵一下其实一点也不神秘。线扫相机需要和运动控制卡、编码器配合编码器A/B/Z信号、行触发信号、帧触发信号为了抗干扰基本都是差分输出常见的有RS422电平或者LVDS电平。相机数据接口里的Camera Link本质上就是多对LVDS差分线在跑高速数据。在工业现场电机、变频器、电磁阀到处都是噪声环境相当恶劣。如果相机触发线用普通单端TTL稍微长一点就容易被干扰出现丢触发、多触发的情况。换成差分线后两根线受到的干扰基本相同接收端只判差值可靠性明显上了一个台阶。再来看RS485它可以说是差分信号在工业总线里最经典的代表。RS485物理层就是一对差分线A和B接收端判断的是VA与VB的差值当VA比VB高一定电压记为一个逻辑状态反之记为另一个状态。通常空闲状态下总线保持一个确定电平靠终端电阻和偏置电阻实现。真正写代码解析RS485数据其实和解析普通串口数据没有本质区别因为到了MCU或者USB转串口芯片这一层差分信号已经被转换成普通的TTL串口电平了。DE/RE方向控制反而是最常见的问题。给一段Python串口读取并解析简单帧格式的示例大家感受一下数据侧的工作import serial ser serial.Serial(/dev/ttyUSB0, 115200, timeout0.1) def decode_frame(data: bytes): # 简易帧格式: AA 55 len cmd payload... chk if len(data) 5: return None if data[0] ! 0xAA or data[1] ! 0x55: return None length data[2] cmd data[3] payload data[4:4 length] chk data[4 length] if chk ! (sum(payload) 0xFF): return None return cmd, payload buf b while True: chunk ser.read(64) if chunk: buf chunk # 按长度字段切帧 while len(buf) 5 and len(buf) 5 buf[2] 1: frame buf[:5 buf[2] 1] buf buf[5 buf[2] 1:] result decode_frame(frame) if result: print(cmd:, hex(result[0]), payload:, result[1].hex())这段代码背后的PCB注意事项才是重点主机端RS485收发芯片的A/B脚要接120Ω终端电阻位置放在总线末端如果只是板内短距离点对点通信有时候也不接但抗干扰能力会差一点。很多新手把A/B接反表现出来就是一发数据对方收到全是0xFF或者全是0x00用示波器一测A/B电压关系立刻就能看出来。1.3 MCU没有USB差分数据引脚怎么办三种实际方案“MCU没有USB差分信号数据引脚怎么办”这个问题在论坛里经常看到。遇到这个问题第一件事不是急着画板子而是先确认MCU到底缺的是哪一部分是完全没有USB控制器还是USB控制器和PHY都集成在芯片里但引脚被复用占用了还是芯片只带USB控制器但内部没有PHY。先说最常见的情况MCU本身就没有USB控制器。比如很多低成本的8位单片机成本压得很低没有原生USB功能。这时最经济实用的方案是加一颗USB转串口桥接芯片像CH340G、CP2102、FT232RL都在这个场景里大量使用。USB座子到桥接芯片之间要按90Ω差分阻抗走DP/DM线桥接芯片再通过UART和MCU通信。这个方案的缺点是速率受限一般也就跑个几十kbps到几Mbps的串口通信量但做上位机配置、日志输出、固件升级已经够了。第二种情况复杂一点MCU有USB控制器但内部没有PHY或者内部PHY不支持你想要的USB速率。典型做法是外扩一颗USB PHY芯片例如USB3300通过ULPI接口和MCU相连。ULPI接口包含8位数据线和60MHz参考时钟PCB上除了DP/DM差分对还要特别注意ULPI数据线的等长和阻抗控制。这个方案能做到USB 2.0 High-Speed适合需要大数据吞吐的项目。还有一种情况纯粹是引脚复用问题芯片明明有USB功能但DP/DM引脚被外设占用了。这时候优先查MCU的引脚重映射表很多型号都可以把USB引脚重映射到其他位置。实在搞不定又必须用USB那就只能牺牲掉冲突的外设功能。不管走哪条路USB DP/DM这对差分线在PCB上的处理原则是一致的阻抗90Ω等长尽量控制在5mil以内串联电阻常见22Ω靠近主控端放置ESD保护器件靠近USB座子而且ESD器件的寄生电容要小最好小于1pF否则高速信号会被砍掉一截。2. 高速PCB差分对布局布线的核心要领2.1 阻抗匹配先算清楚再做板高速PCB和低速PCB设计上的分水岭就是“要不要做阻抗控制”。低速电路里一根导线就是一根导线只要连通就行到了高速场景导线变成了传输线具有特征阻抗。当信号传输过程中遇到的阻抗发生变化时一部分能量会被反射回去反射波和入射波叠加轻则振铃重则误码。差分信号的阻抗控制重点在两个概念差分阻抗和共模阻抗。平常说的“USB走90Ω”、“LVDS走100Ω”指的就是差分阻抗。差分阻抗不等于两根线单端阻抗的简单并联它和线宽、线距、介质厚度、铜厚、介电常数都有关系。新手最容易犯的错是只记得线宽线距忘了看走线在哪一层。表层微带线和内层带状线的阻抗特性完全不同同样的线宽线距从表层挪到内层阻抗可能直接差出十几欧。所以我每次画板子都会先确认叠层再做阻抗设计。举个例子4层板常见的叠层一般是Top / GND / Power / Bottom。Top层和Bottom层的信号参考的是相邻的GND层或Power层表层做差分对时介质厚度H直接决定阻抗。如果板厂给的叠层是76282116这种常规组合表层差分线做90Ω线宽线距通常会在4~6mil和4~5mil附近转悠。但不同板厂压合工艺、铜厚不一样精确值必须让板厂用叠层工具算或者你自己拉着SI9000这类工具算。实操中最稳妥的做法是画板之前把目标阻抗告诉板厂比如“我要表层100Ω差分内层100Ω差分”让板厂提供对应叠层和推荐线宽线距。板厂一般会随板做阻抗条测试你收到板子后可以看到实测报告。这里有一个关键点如果你的板子有多个阻抗要求比如USB 90Ω、LVDS 100Ω、RS485 120Ω同时存在最好在制板说明里写清楚每一组对应的网络和层不要只写一句“全部按100Ω做”否则回来测出来90Ω的位置全部不匹配高速信号分分钟罢工。注意阻抗公差一般要求±10%。USB 2.0的90Ω如果做到78Ω反射会明显增加信号质量肉眼可见地变差。如果你的芯片参考设计允许尽量让板厂往目标值中间压。2.2 等长、间距和回流路径三者是一体的阻抗控制解决的是“线的宽度和所处环境”问题而等长解决的是“时间对齐”问题。差分信号由P和N两根线组成接收端靠比较两者差值来还原信号如果两根线长度不一致信号到达接收端的时间就有偏差这个偏差叫skew。skew太大差分摆幅变小、边沿变缓严重时直接误码。实际做布线约束时不同协议对等长的要求不一样。USB 2.0高速模式差分对内等长最好控制在5mil以内千兆以太网、HDMI这类更高速的接口要求更严有的甚至要求差分对内完全等长差分对之间也有长度匹配要求。RS485这种低速工业总线可以宽松点但也不建议让P和N差距太大毕竟长距离传输本来就吃信号质量。等长怎么绕线也是有讲究的。常见做法是蛇形绕线或者S形绕线但要注意几个原则绕线不能有直角。直角处线宽突变阻抗不连续等于自己给自己造了一个反射点。绕线尽量保持对称。P和N要绕就一起绕不要在靠近连接器的地方单独把一根线绕一大圈。绕线区域内不要有其他信号穿过否则耦合噪声进来等长做到了反而串扰更大。间距问题同样重要。差分对内两线的间距决定耦合强度间距太小对内的阻抗会降加工难度也大间距太大耦合变弱抗干扰优势就被稀释了。一般参考设计里都会给出建议的线宽/线距比如100Ω差分常做“5/5mil”或者“4/4mil”这个“5/5”指的是线宽5mil、线距5mil。对外的间距也有门道这就是常说的3W规则差分对与其他信号之间至少保持3倍线宽的间距不然邻近信号窜进来高速差分对很容易被干扰。更重要的是不要在差分对中间走其他信号线尤其是时钟线。一旦在P和N之间嵌入一根线耦合关系被破坏差分质量直线下降。回流路径是更隐蔽的一项。很多人把差分对画得漂漂亮亮却忽略了信号正下方的地平面是否连续。如果差分对跨过了一个长槽比如地层被分割成不同电源区回流电流就不得不绕一个大圈子回到源端回路面积变大辐射和串扰都会飙上去。这就好比水管里的水前面通畅没用回路弯弯绕绕水流量也上不去。在处理回流路径时我给自己定了几条规矩差分对下方尽量保持完整参考地平面严禁跨分割换层时在换层过孔旁边加回流地孔距离越近越好。2.3 过孔、换层与stub处理能少则少少不掉就背钻过孔在低速板子里就是个连接通道放到高速信号上就成了阻抗不连续的“结石”。过孔本身有寄生电容会拉低阻抗过孔残桩更麻烦会在高频段形成谐振把信号质量打掉一大截。做过高速板的朋友碰到10Gbps以上的信号都会考虑背钻。背钻就是把过孔没有用到的残桩钻掉减少反射和谐振。但在常见的USB 2.0、LVDS这些场景里背钻未必是必须项更重要的还是“少换层”。每换一次层就是一次阻抗突变路径上还多了过孔和转接点。我的原则是高速差分信号能不走孔就不走孔非走不可时P和N两个过孔尽量靠近成对出现并且在过孔旁边放一个回流地过孔。换层时的回流地过孔位置很多人会忽略。过孔换层后信号参考的平面从Top的GND切到内层的GND返回电流需要从一个平面跳到另一个平面。如果旁边没有地过孔返回电流就只能绕远路通过其他地过孔或者电容跳转相当于回流路径被拉长。所以换层位置的地过孔并不是随便放而是要贴着信号过孔放通常和信号过孔的距离控制在30mil以内效果才好。你如果在审查别人板子的时候看到一组差分对频繁换层、旁边又没地孔基本可以判定这板子高速性能好不了。这不是玄学是实打实的物理问题。3. 时钟同步从一块板到整个系统的关键3.1 时钟信号的基础skew和jitter别搞混时钟信号既是高速电路的心跳也是最容易引入隐患的地方。说到时钟质量必须先分清两个概念skew和jitter。Skew是确定性偏差。比如同一个时钟源分出来接到两个芯片因为PCB走线长度不一样到达两个芯片的时钟沿就有了固定时间差。这个偏差是固定、可测量的所以叫确定性偏差。Jitter则是抖动是时钟边沿位置在时间轴上的随机或准随机晃动。它由热噪声、电源噪声、串扰等引起无法用简单的延时补偿消除体现为时钟边沿相对于理想位置的“模糊”。两者对系统的影响也不同skew会导致设备间时序余量变小jitter直接影响采样精度和误码率。时钟抖动对高速ADC采样质量的影响尤其大。采样时钟边沿抖动过大相当于采样时刻不确定采到的电压值和理想时刻不一样等效于给信号叠加了噪声。有个经典公式SNR劣化量约等于-20log10(2π × fin × tjitter)fin是输入信号频率tjitter是采样时钟抖动。举个直观例子输入频率100MHz、时钟抖动500fs时SNR大约会被压在-70dB这个量级如果抖动变成2psSNR直接掉到-58dB左右。对追求高动态范围的采集系统来说这是致命的。所以做高速板的时候时钟源的选择不能只看频率对不对还要看相位噪声和抖动指标。用PLL倍频时尤其要注意环路带宽设计因为PLL会把参考时钟的噪声和VCO的噪声按不同频段加权表现出来。3.2 PCB布局里的时钟走线与分配少绕弯、多隔离PCB上时钟线的布置核心原则就是时钟信号是板上最需要保护的信号之一它既要保证自身干净又不要去干扰别人。先说走线长度。时钟信号从源端到负载端路径越短越好路径越长受到干扰的概率越大对外辐射的面积也越大。如果多个负载需要同一路时钟不要一条线串到底优先使用时钟缓冲器Clock Buffer分成多路每条分支自己控制走线长度。这就是时钟分配里的H树思想和菊花链的区别H树尽量让每条分支延时一致菊花链则天然存在前级负载抽头带来的反射问题。时钟线在PCB上的物理位置也要讲究。尽量走内层让上下相邻的平面作为天然屏蔽如果必须走表层两侧要做包地处理包地线每隔一小段打过孔接地。时钟线绝对不要靠近DCDC电感、功率MOSFET的开关节点、继电器这类强干扰源这点我吃过亏——之前有一版板子的ADC时钟从开关电源旁边绕了一段示波器测眼图还好一放到系统里底噪就高最后定位到就是时钟被电源开关噪声污染了。源同步时钟系统里时钟线还要和数据线做等长约束。DDR、高速ADC、LVDS数据链路基本都是这个套路时钟是“拍板”信号数据是“内容”拍板到达的时机和数据稳定的时间段必须对齐。对应到PCB上就是时钟走线长度和数据走线长度要匹配差值控制在布线的容差范围内。3.3 时钟同步怎么设置从寄存器到系统层面“clocksync怎么设置时钟同步”这个问题表面上看起来是软件问题实际上硬件和软件各占一半而且在硬件层面积累的问题软件怎么调都白搭。先说MCU层面的时钟配置。很多MCU内部有多个PLL和多条时钟树USB、ADC、UART各用各的时钟源配置不当会出现各种诡异现象USB枚举失败但换个电脑又好了、ADC采样值跳变、串口波特率偏移。这类问题排查时先确认每个外设时钟源是否在合理频率范围内USBCLK是否精确等于芯片要求的48MHz全速/高速经常有这个要求。用CubeMX这类工具配置时页面里会直接标红提醒配置冲突这个提示一定要看。FPGA层面的时钟同步就更复杂一些。高速接口的数据和时钟通常需要做相位对齐FPGA里的PLL/MMCM可以对时钟做动态相移。以Xilinx MMCM为例可以通过动态相位调整接口让采样时钟逐步移动直到找到数据的稳定采样点。这一步常常配合IBERT这类调试工具使用能直接看到不同相位设置下的误码情况过程更像是在“寻优”而不是“设定”。系统级的时钟同步在机器视觉领域特别典型。线扫相机要和运动平台保持严格同步靠的是什么不是软件sleep而是硬件触发信号。运动控制卡的编码器分频出脉冲通过差分线发给相机相机每收到一个触发沿就扫描一行。这样无论平台速度快慢图像不会变形。如果多台相机和数据采集卡协同工作还需要更高精度的同步方式比如IEEE 1588精确时间协议在网线里跑时间戳同步让多台设备的时间基准对齐到亚微秒级。至于服务器端的时间同步工具比如我经常在采集工控机上看到有人配置chrony这种服务它解决的是Linux系统时间戳的一致性问题跟硬件采集时序是不同层面的话题。真要在多设备系统里做时间对齐靠软件时间戳远不如硬件触发线来得可靠。4. 差分信号与时钟同步的交叉考虑4.1 差分时钟更稳的“标准时间”但有新的布线要求普通单端时钟在板内短距离传输没问题但频率高了、距离长了、环境噪了就需要考虑差分时钟。差分时钟源输出一对LVDS或LVPECL电平的互补时钟信号接收端看两者的差值抗共模干扰的能力和普通差分信号一样出色。差分时钟的好处很明显共模噪声抑制能力强、低摆幅低辐射适合长距离或高噪声环境。很多高速ADC评估板都支持LVDS时钟输入这就说明差分时钟在高精度采样场景里认可度相当高。但它对Layout提出了新要求一对差分时钟线同样要做阻抗控制、等长控制、回流路径设计这些和第2节讲的原则完全一致。千万不要觉得“时钟信号低速”或者“器件厂商没写等长要求”就随便走。我在实际项目里见过有人把LVDS时钟两根线分得老远中间还穿了一根复位线结果时钟抖动惨不忍睹直接拉低了整个采集系统的动态范围。4.2 布局策略时钟线、差分对和干扰源的“三角关系”一张板子的空间有限信号一多布局就成了“抢地盘”。我通常把板子按功能模块划分电源区域放在边缘数字处理放中间高速接口沿板边布置敏感模拟信号和时钟尽量靠近负载芯片本身不让它们长途跋涉穿越干扰区。尤其要盯住的是时钟产生区域和差分接口区域之间的关系。晶振和PLL通常对噪声敏感也容易对外辐射。晶振底下不要走任何信号线特别是不要跑到差分对下方去。反过来高速差分对也不要绕到晶振上方去。这两类信号之间留出空间比后面加一堆屏蔽罩更有效。还有一个布局上的常见误区就是蔓分割地。老一代教材喜欢把模拟地AGND和数字地DGND用磁珠或0欧电阻隔开这本意是防止数字噪声污染模拟电路。但如果你在地平面上开了一条长长的槽而高速差分信号又不巧跨越了这条槽回流路径就被切断了结果比不分割还要糟糕。现在我自己的经验是绝大多数PCB上一块完整、连续、低阻抗的地平面比强行分割AGND/DGND更有价值。模拟敏感区域可以通过物理分区、远离干扰源来解决而不是靠割地。4.3 电源纹波对时钟和差分信号的连锁影响电源和高速信号之间的关联经常被新手低估。时钟芯片、PLL、差分驱动器都需要干净的电源电源纹波会通过电源引脚耦合到输出信号上直接把抖动做差。去耦电容是解决电源噪声最直接的手段。常规经验是每个电源引脚放0.1μF电容大芯片再在附近加一个1μF或10μF的体电容还要视情况加一个100nF的高频电容。但电容不是放得越多越好寄生电感小的封装才是高频去耦的关键因此高速芯片电源引脚附近的去耦电容通常是0402或0201封装。而且去耦电容的摆放位置必须紧贴电源引脚最好是同一面、走线极短直接连到引脚和过孔不要拉一根长线再接电容那样等效于白放。电源平面阻抗也很重要。多层板的电源平面和地平面构成一个大平板电容这是全板最低阻抗的电源通路。我见过不少板子电源平面上开了一堆乱七八糟的槽导致部分区域的电源阻抗飙升结果高速芯片在这里工作时电源噪声明显偏大时钟抖动和眼图质量一起变差。这又回到了同一条原则平面完整性不仅是信号回流的事也是电源完整性的支柱。5. 常见问题与排查技巧实录5.1 常见的信号问题速查表调试时的问题五花八门我整理了一份高频问题对照表按现象、可能原因、排查顺序来写方便排障时快速参考现象可能原因排查措施RS485通信乱码/无响应A/B极性接反、终端电阻缺失、波特率偏差示波器量A/B电平差检查终端与偏置电阻核对波特率USB设备无法识别DP/DM等长超标、ESD电容过大、串联电阻阻值异常检查组容值查等长报告用示波器看DP/DM波形线扫相机触发丢帧/不同步触发线受干扰、触发源和相机共地不良检查触发信号是否差分传输确认地连接用示波器抓触发沿高速接口眼图闭合阻抗不匹配、回流路径被切断、过孔stub过长用TDR测阻抗查平面完整性必要时背钻时钟抖动偏大晶振附近干扰、电源纹波大、PLL配置不当查看时钟频谱量电源纹波调整PLL环路配置采集系统噪底抬高采样时钟抖动、地分割、DCDC噪声串入模拟区逐个模块断电判断噪声来源换低抖动时钟源验证这张表解决的是“从现象找方向”的问题真正定位还需要用仪器一步步确认。5.2 仪器排查差分探头、TDR和眼图测试高速差分信号调试差分探头基本是刚需。用普通的单端探头分别去测P和N两根线会看到两路单端波形但没法直接看到真正的差分信号而且探头地线夹子带来的寄生电感会严重干扰高频测量。有源差分探头能直接输出Vp - Vn的波形测试结果才有参考价值。同时要注意探头的带宽至少是信号速率的3~5倍否则高频分量被滤掉看到的眼图比实际差很多。TDR时域反射计是查阻抗问题的利器。原理很简单向传输线发射一个快速上升沿的阶跃信号观察反射波形。阻抗匹配的位置反射很小阻抗突变的地方反射明显。TDR能看到某一段走线到底是偏粗还是偏细过孔在哪里拉低了阻抗连接器处有没有大反射。很多高端示波器都有TDR模块板厂在做阻抗条测试时用的也是类似原理。TDR结果和阻抗计算结合起来看能精确定位“我的设计哪里和理论预估不一致”。眼图测试是评估高速收发链路信号质量的通用方法。示波器把大量数据波形叠加起来形成眼睛形状的图案。眼睛越大越清晰说明信号质量越好眼睛越小、交叉点越散乱说明抖动和串扰在恶化信号。眼图里有几个重要指标眼高、眼宽、抖动、上升时间。做眼图测试时时钟恢复方式很关键用被测信号自己恢复时钟还是用外部干净的参考时钟得到的结果差异很大。第一次做眼图的同学很容易忽略这一点。5.3 我不会再踩第二次的几个坑这些年做过不少高速板也翻过不少车挑几个印象最深的写在下面希望帮大家少走弯路。第一个坑是换层后没重新算线宽线距。有一版板子表层差分对按4/5mil做了100Ω到了内层我图省事直接把同样的4/5mil搬到内层结果阻抗整整偏了10多欧信号反射大误码率直线上升。从那以后再也没干过这种事每次换层必须重新确认叠层和阻抗。第二个坑是万用表量“通”不等于时序上“通”。有一次排查一个问题用万用表量两根差分线明明都是导通的但信号就是不对。最后拿CAD工具一查等长报告发现P线走了800milN线走了980mil差了180mil接近一个信号边沿的时间了。等长这种事眼睛看不出来必须靠工具约束加抽查报告。第三个坑是终端电阻的位置。RS485的120Ω终端电阻要放在总线物理末端不是放在收发芯片旁边就算完。如果板子中间某个节点把终端电阻放在芯片附近而总线真正的末端没有匹配高频信号照样反射表现就是总线长了之后偶发乱码。现场排查此类问题可以在末端节点的A/B之间跨接一个120Ω电阻试试效果会立竿见影。第四个坑是时钟线靠近大电流走线导致抖动。有一版板子的DCDC电感离时钟线太近肉眼看起来还有1cm距离觉得够了。结果实际测量时钟抖动明显偏大系统的底噪、误码率双双超标。后来把时钟源和电感之间的距离拉到2cm以上问题就消失了。高速板上的“够用”和“好用”之间往往就差这一点物理距离。说实话搞高速PCB设计没有一步到位的诀窍更多时候是“原理上想明白规则上落到位测试上抓得准”。每踩一次坑回头再看原理图、版图都会有新的理解。尤其是差分信号和时钟同步这两块看似是两条独立的线实际在物理世界里始终绑在一起——差分信号的接收端需要时钟去采样时钟系统的质量又决定差分信号能不能被准确读出来。两者都做到位板子才能真正跑得稳。
返回列表