ARTICLE DETAIL

资讯详情

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

EMC整改实战:时钟抖动与展频SSC参数配置指南

EMC整改实战:时钟抖动与展频SSC参数配置指南 直接进入正题。前些天帮一个做视频采集卡的团队看辐射发射超标的问题周末加班在实验室里对着频谱仪折腾了一整天最后问题出在大家都没想到的地方主控给ADC供的MCLK时钟展频SSC虽然开了但调制率和调制深度完全不是给EMC用的那套参数等于没开。换了一组配置再跑一次RE测试余量直接多了6个dB。这种“时钟没抖起来”导致的EMC翻车在硬件调试里太常见了。很多工程师一看到时钟就想到时序约束、建立保持时间很少去关注时钟在频域上的行为。这篇文章就把EMC测试里跟时钟抖动、展频相关的那些门道一次讲清楚包括SSC的原理、参数怎么选、PCB上怎么配合以及实测中容易踩的坑希望能给正在被辐射发射折腾的人一点参考。1. EMC测试为什么会栽在时钟上1.1 时钟信号天生就是“辐射源”先看一个最基本的物理事实任何周期信号的能量都集中在它的基频和谐波上。时钟信号尤其典型因为它的上升沿和下降沿非常陡峭频谱包络衰减得很慢高次谐波可以一直延伸到几百MHz甚至GHz级别。换句话说一块板子上只要有时钟跑着频谱仪上就一定看得到尖峰。比如一个100MHz的时钟在100MHz、200MHz、300MHz……这些频点上都会出现能量集中。EMC测试里的辐射发射限值不管是CISPR 22还是CISPR 32都是按频段划分的准峰值限值。只要某个谐波的准峰值超过限值线测试就失败。这在实践中意味着什么我见过不少案例DDR跑在800MT/s的时候辐射频谱上在400MHz附近冒出一根特别高的尖峰经过排查发现不是DDR数据线上的问题而是参考时钟的谐波和DDR时钟谐波叠加在一起形成了一根“超级谱线”。时钟虽然只占一根信号线的位置它在EMC上的“话语权”远超想象。1.2 抖动、频偏、漂移三个容易混淆的概念展开讲SSC之前得先分清三个概念抖动Jitter、频偏Frequency Offset、漂移Drift。抖动时钟边沿相对于理想位置的短期偏移单位是ps或ns。抖动分为随机抖动RJ和确定性抖动DJ它反映的是时间域上的不稳定。频偏时钟实际频率与标称频率之间的固定偏差单位是ppm。比如一个100MHz的晶振标称频偏是±30ppm意味着实际频率可能在99.997MHz到100.003MHz之间。漂移频率随时间和环境缓慢变化通常由温度引起。EMC测试关心的是频谱包络。抖动会影响频谱的整体形态随机抖动的存在会降低谐波峰值看似“有利于”EMC但代价是系统时序余量变差。而频偏和展频又不一样展频是一种主动的、周期性的频率调制不是被动的不稳定两者性质完全不同。1.3 为什么展频能“压低”频谱峰值展频时钟的核心思路很简单不把能量集中在一个频点上而是让时钟频率在一个小范围内周期性摆动把能量“摊开”。打个比方这就好比你站在原地喊话声音就集中在一个位置上如果你一边喊一边来回走动同一时刻站在某个具体位置的人听到的音量就小很多。时钟能量被分散后频谱上每一个频点的峰值都会下降而总能量基本不变。展频带来的峰值衰减幅度取决于调制深度和调制波形。调制深度越大能量摊开得越宽峰值压低越多。但代价是时钟在时间域上的周期持续变化对时序要求高的系统比如高速SerDes、DDR接口会带来额外的挑战。这就是为什么展频不是“越大越好”它需要在EMC收益和系统稳定性之间找一个平衡点。2. SSC展频时钟的核心逻辑与参数配置2.1 展频的几种实现方式展频按实现方式分主要有三种调制时钟源的PLL分频/倍频系数通过改变锁相环的反馈分频比让输出频率周期性变化。这种方式比较灵活但PLL的环路带宽会限制调制速率如果调制率太高PLL跟不上。在时钟发生器芯片内部集成SSC功能很多专用时钟芯片比如IDT/Renesas的某些型号、TI的LMK系列自带展频功能只需要通过I2C/SPI配置几个寄存器就能启用。用FPGA/DSP在数字域实现如果你用的是FPGA生成时钟可以在RTL里设计一个数字调制器动态改变分频值实现展频输出。这种方法自由度高但要小心调制过程中产生的相位跳变。从实际项目来看第二种方式用得最多也最稳因为它经过芯片厂家的验证参数范围明确行为可控。2.2 调制率、调制深度、展频方向参数怎么选展频有三个核心参数每一个都直接影响EMC效果和系统兼容性调制率Modulation Rate调制波形的频率单位是kHz。常见取值在30kHz到60kHz之间。为什么是30~60kHz因为这个范围高于音频20kHz以上避免产生可闻噪声同时又在电源滤波器的带宽之外不容易和电源纹波形成差拍干扰。太高超过100kHz的问题在于接收机的中频带宽一般在120kHzCISPR标准如果调制率太高频谱分析仪可能“跟不上”测试结果不稳定。此外过高的调制率对PLL跟踪也有压力。调制深度Modulation Depth频率摆动的范围常用百分比或者ppm表示。向下展频Down Spread通常取-0.5%到-2.5%也就是从标称频率向下摆动。中心展频Center Spread则是上下各摆一半。对于EMC抑制来说中心展频和向下展频的效果接近但向下展频更容易保证系统最大频率不超过标称值因此对时序更友好。展频方向向上、向下、中心三种。向上展频很少用因为它会把最高频率抬到标称之上可能突破时序上限一般不推荐。向下展频是主流因为很多IC的最大工作频率限制摆在那里向下展频不会突破上限。表格可以做成这样参数常见取值对EMC的影响对系统的影响调制率30~60kHz影响频谱展开形态太高会使测试结果波动大过低可能进入音频范围调制深度-0.5%~-2.5%深度越大峰值衰减越多深度太大会增加时序余量压力展频方向Down Spread为主向下展频抑制效果和中心展频接近向下展频可保证不超上限2.3 一个实测配置案例视频采集卡的108MHz时钟以文章开头提到的那块视频采集卡为例主控给ADC供一个108MHz的MCLK时钟展频功能用的是芯片内部SSC。第一次调试时工程师直接在寄存器配置里写了一个调制深度-5%、调制率10kHz的参数结果噪声反而是大了。原因是调制率10kHz落进了音频范围且和板上一个DC-DC的开关频率产生了差拍频谱上出现了低频段的“毛刺”噪声虽然不影响高频发射但会让测试曲线很难看。后来改成D/S向下展频-1.5%调制率33kHz实测频谱上108MHz这根发射尖峰的峰值下降了约7dB。这个效果是实打实的原本RE测试在108MHz超标2dB改完后余量5dB。这就是配置选型对整个测试结果的影响。这里的经验是展频参数不是随便填的一定要看芯片手册里的推荐范围优先用厂家默认的“EMC推荐配置”。厂商在做芯片validation时已经把这些参数测试过一轮踩坑的概率会小很多。2.4 展频工具链寄存器配置和SSC验证工具热搜词里有个“SSC tool”、“ssc tool 5.13”这里顺便说一句。很多时钟芯片厂家会提供计算工具输入目标频率、展频深度、调制率工具直接算出寄存器值。这类工具很有用因为寄存器里存的不是小数而是分频比、步长值等整数参数手算很容易算错。我自己用过的几款工具比如Renesas的ClockBuilder、TI的TICS Pro都是填参数然后生成配置文件。虽然UI各不相同但核心逻辑一致先定输入频率再定输出频率确定展频的调制深度和调制率然后检查PLL的VCO频率是否落在合法范围内。如果VCO超出范围工具会提示调整参考频率或分频配置。这一步实际调试中很容易忽略很多人改完展频参数发现输出频率偏了或者根本没展频回查基本都在VCO超出工作范围。3. 时钟抖动的硬件底子PCB布局与跨时钟域设计3.1 时钟源的位置决定EMC的上限软件层面的SSC配置再花哨也架不住硬件布局的“反向操作”。时钟源的位置非常关键我看到过很多板子把晶振放在板边离连接器只有几个毫米这简直是主动把干扰往外送。晶振或者时钟发生器的位置应该尽量靠近用电的芯片走线要短参考平面要完整。具体到布局布线几个原则时钟走线要短而直避免跨越分割的参考平面。跨分割会造成阻抗突变信号回流面积变大辐射增强。时钟走线周围要打地孔隔离让回流路径贴着走线走不要把时钟信号裸露在板边。晶振下方铺地铜并且打一些地孔。晶振外壳接地也很有用可以有效抑制晶振本身向空间辐射的能量。3.2 ADC/DAC电路里时钟和电源噪声的博弈热搜词里有一条“adc/dac 电路设计规避时钟抖动与电源噪声的3个pcb布局要点”这个点和EMC也直接挂钩。ADC/DAC的性能和时钟抖动强相关抖动会直接恶化信噪比。公式是SNR_dB 20 * log10(1 / (2 * π * f_in * t_jitter))这个公式说明一个残酷的事实输入信号频率越高同样的抖动造成的SNR损失越大。比如一个100MHz的模拟输入信号0.5ps RMS抖动带来的SNR上限只有约70dB。很多高性能ADC的SNR标称值在75dB以上如果你给它的时钟抖动超标ADC本身再好也白搭。从EMC角度来说ADC/DAC布局有几点长期实践经验时钟走线和模拟输入走线要“分居”两侧中间用地隔离。如果时钟噪声串扰到模拟输入问题不只是EMC还直接影响信号质量。时钟芯片的电源管脚和ADC的电源管脚分开滤波不要共用一颗LDO或者共用一个磁珠。防止时钟芯片的开关噪声通过电源网络耦合到ADC这个噪声不仅影响ADC的SNR还会在板上形成传导发射的路径。时钟信号串接一个电阻把上升沿变缓。上升沿越陡频谱包络衰减越慢辐射越强。串个小电阻22Ω到33Ω和源端匹配电阻合二为一既改善信号完整性又压低高频分量。3.3 跨时钟域处理CDC问题如何“反哺”EMC跨时钟域CDC处理表面上看是数字逻辑稳定性的问题但它跟EMC也有关系。为什么因为如果CDC处理不当电路里会出现亚稳态导致信号出现毛刺。毛刺的频谱极宽会引入大量高频分量直接抬高本底噪声。常用的CDC处理方式两级同步器用于单bit信号第一级打拍消除亚稳态第二级提供稳定输出。异步FIFO用于多bit数据流通过格雷码指针同步避免多bit同时变化时采到中间状态。MUX约束如果多个时钟需要切换时钟MUX的选择信号必须是同步的否则切换瞬间可能出现短脉冲形成毛刺。这就是热搜词里“时钟mux约束”的实际意义。我们曾经在FPGA的调试中遇到过这个问题一个跨时钟域的同步信号没做好导致偶尔出现亚稳态在频谱上表现为本底噪声比正常时高出3~4dB。查了很久最后发现不是硬件问题是RTL代码里的同步器少了一级。可见“数字bug”对EMC的影响不容忽视。3.4 差分时钟与串电容的那些事高速接口比如MIPI、PCIe、以太网普遍用差分时钟差分信号的好处是对共模噪声不敏感且差分对的辐射能量相对较小。但在实际调试中差分时钟也常出问题。热搜词里有“差分时钟串电容作用”。这个电容叫隔直电容或者AC耦合电容。它的作用是滤掉共模直流分量只让交流信号通过。因为驱动端的输出共模电压和接收端的输入共模范围不一定匹配加电容可以断开直流路径让两端各自设置合适的共模点。但在EMC层面这个电容选多大是有讲究的电容太小比如0.01uF低频分量会被滤掉波形变形边沿变缓对时序不利。电容太大比如10uFESR和ESL显著高频特性变差。常用值在0.1uF到1uF之间还要注意封装0402或者0603比较合适因为寄生电感小。差分时钟还需要关注一件事走线要等长、等距、平行。差分阻抗要匹配一般100Ω差分。如果差分对的P和N长度差得太多会把差分信号变成共模信号共模电流是辐射发射的主要贡献者。这个现象在频谱上表现为偶次谐波特别高因为在理想差分信号里偶次谐波是相消的一旦共模成分增加偶次谐波就会被“激活”。4. 实测现场一次EMC整改的全过程记录4.1 原始数据长什么样去年有个客户的产品做预测试辐射发射在200MHz附近超标超标量约4dB。板子是一台工业控制器主控频率400MHz用的DDR3内存内部有USB 2.0、Ethernet等多个接口。第一次测试数据出来频谱上有两处明显的“烟囱”一根在200MHz严重超标一根在400MHz附近刚好压线。按照经验200MHz是DDR时钟的二次谐波DDR3时钟一般是400MHz的话200MHz不是DDR谐波后来确认是USB 2.0的480MHz和主控时钟产生了混频。而400MHz这根就是DDR参考时钟的基波泄漏。排查步骤先切掉DDR时钟的展频功能默认是关的测试发现400MHz的尖峰特别尖锐说明这正是DDR时钟泄漏。打开展频配置-0.5%向下展频400MHz尖峰下降了约4dB但200MHz还是超标。再检查USB 2.0的数据线走线发现它跨过了一个分割的电源平面导致回流路径变长辐射增强。这个属于布局问题没法靠时钟配置解决只能改板。最后把USB走线的参考平面打通加了一些接地过孔200MHz的尖峰降了7dB彻底达标。4.2 展频到底压了多少dB给大家一个直观的数据。同一块板子上用同一颗时钟芯片配置三组不同参数测试同一个频点比如100MHz基波的峰值衰减配置调制率调制深度100MHz峰值衰减SSC关闭--0 dB基准SSC中心展频30kHz±0.25%-3.2 dBSSC向下展频33kHz-0.5%-5.8 dBSSC向下展频33kHz-1.0%-8.1 dB注意这里有个明显的规律衰减大概和调制深度的平方根或者对数相关不是线性关系。深度从0.5%加到1.0%衰减只增加了大约2.3dB边际效益在递减。如果继续加大到2.5%中间有可能会因为PLL的跟踪能力下降而出现调制波形失真反而导致频谱出现杂散。这也是为什么很多芯片的SSC深度上限就定在-2.5%左右。4.3 常见问题速查表整理几个我在调试中反复遇到的情况做成一个速查表格给后面调试的人参考现象可能原因排查方向打开SSC后频谱没有变化寄存器没生效或者使能位被后续配置覆盖回读寄存器确认真实配置值打开SSC后出现杂散频率调制率设置太高或者调制波形不纯净降低调制率尝试30kHz~40kHz时钟输出频率整体偏差VCO超范围或分频配置错误使用厂家工具重新计算配置谐波能量反而变大展频方向和系统时序冲突导致PLL失锁检查锁定状态改用向下展频某个频点上出现“低频呼吸感”噪声调制率落入音频或电源差拍频段调整调制率避开DC-DC开关频率差分时钟偶次谐波偏高差分对等长没做好共模成分过大检查等长、共模扼流圈、回流地4.4 仪器设置与测试手法上的坑测试中还有一个容易被忽略的环节如果用频谱仪或者接收机去验证SSC效果扫描时间要够长或者用“Max Hold”模式多跑几次。因为展频是让频点周期性摆动扫描速度太快的话你会看到频点“游走”峰值读数偏低或者不稳定。这不一定是产品问题而是测量方法不对。在正规实验室里做RE测试接收机会按照标准设置扫描这个不用担心。但如果你在自己的办公桌上用频谱仪粗测一定要记住把SPAN拉开RBW设成和标准一致的120kHz用Peak Hold叠加多次扫描再去判断峰值到底降了多少。另一个细节是近场探头的位置。用近场探头测时钟区域的辐射探头摆放的角度和距离对读数影响非常大。前后相差1cm读数可能差10dB以上。正确的做法是固定探头支架每次都放在同一个位置保持一致的姿态这样测出来的数据才具备可对比性。否则你辛辛苦苦改了配置结果探头歪了一点误以为有效果那就白折腾了。5. 时钟“抖”起来后其他还该注意什么5.1 时钟树设计与芯片选型时钟树设计并不只是画个框图把一颗晶振分给所有芯片。要注意每一路输出是否需要独立的展频控制以及不同芯片对时钟输入幅度的要求。有些芯片对时钟压摆率slew rate有要求太慢的边沿会导致芯片内部电流增大反而增加噪声。选型方面如果你为EMC专门选时钟芯片优先考虑带展频功能的型号。很多PLL时钟芯片本身就带SSC而且可以独立配置每路的展频开关和参数这比在FPGA里用代码模拟更可靠。5.2 如果系统不能开SSC怎么办有些应用场景对时钟频率的绝对精度和长期稳定性要求很高比如有线通信设备、测量仪器展频会让系统时序余量减小这时候没有办法靠SSC就得靠板级设计本身。这种情况下最有效的几个手段源头降噪选上升沿更缓的时钟器件。同样是33Ω源端匹配不同器件的输出边沿有差异边沿慢的辐射天然更低。屏蔽给时钟区域加屏蔽罩或者用屏蔽的时钟走线结构比如带状线埋在两层地之间。滤波在时钟输出端加一个LC低通滤波或者共模扼流圈前提是保证信号完整性不受影响。频率规划调整系统的工作频率让谐波避开测试频段的敏感区域。这个方法看起来“原始”但在一些频点被限值卡死的项目中特别有效。5.3 和电源噪声的配合电源对时钟EMC的影响经常被忽视。一个纹波大的电源会让时钟产生额外的相位噪声扩展频谱基底虽然未必形成一个高尖峰但会让整个本底噪声抬高。这会让EMC测试的“余量”变小比如本来是-6dB余量现在变成-2dB一改版或者加工批次有波动就压线超标。如果发现时钟辐射在中频段比如几百kHz到几MHz的带宽内有一个隆起的包络大概率是电源噪声调制到时钟上。建议用示波器看时钟芯片电源引脚的纹波用一个1GHz带宽的示波器加一个低阻抗的电源探头如果纹波峰峰值超过了几十mV就需要加大电源滤波的力度或者换用PSRR更高的LDO。从我个人的习惯来说时钟芯片的电源我都会单独加一个LC滤波比如一颗磁珠加两颗电容一个0.1uF、一个10uF的组合。磁珠选直流电阻小的电容靠近芯片引脚放地过孔要尽量靠近电容的GND端这样滤波效果最好。5.4 量产一致性问题最后提醒一个量产阶段的问题SSC展频参数是写在寄存器里的如果产品有多个配置版本要确保不同版本用的是同一份配置。曾经遇到过一个项目样品送测通过了小批量生产时EMC又超标查到最后发现是产线烧录的固件版本里SSC使能位被一个初始化流程覆盖掉了等于展频没开。解决办法是在固件里加一个开机自检流程回读时钟芯片的SSC配置寄存器日志里打印出来。这样产线测试的时候如果发现展频没生效第一时间就能暴露。这个做法的成本很低但对量产质量的保障非常有效。时钟抖动和展频这件事说大不大说小不小但它经常是EMC测试“压死骆驼的最后一根稻草”。如果你正在被辐射发射超标困扰先别急着加屏蔽罩或者调滤波电路花点时间看看时钟芯片的寄存器确认展频有没有开、参数合不合理。很多时候把这一块抖起来整张测试曲线就漂亮了。
返回列表