ARTICLE DETAIL

资讯详情

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

内置时钟辐射超标?展频加芯片级去耦才是破局关键

内置时钟辐射超标?展频加芯片级去耦才是破局关键 最近手头一个项目在预测试时踩了个典型的坑一块以MCU为主控的小板子主芯片用的是内置RC振荡器没接外部晶振频率12MHz。30MHz~1GHz的RE预扫一出来频谱上就是一排间隔非常规则的窄带尖峰156MHz附近超标6dB。有过类似经验的人应该一眼就看得出来这种梳状特征的辐射基本就是数字时钟谐波。当时我第一反应很常规给电源入口塞磁珠、DC-DC输出加LC、信号线上补RC然后复测。结果超标频点纹丝不动个别点还往上涨了一点。这种场景我在项目里遇到好几次也见过同行在群里发过类似的求助——滤波加了一圈RE就是压不下去。今天把这类问题的破局思路完整写一遍硬件和EMC岗位的同行可以直接对照着排查。核心结论先放在这儿内置时钟的噪声源在芯片内部板级入口的滤波器根本不在它的噪声回路上堆再多磁珠也是在源的外面隔靴搔痒。真正管用的破局路径是先把时钟本身的能量形态处理掉再把芯片电源脚上的去耦做扎实最后掐断IO走线形成的天线路径。1. 一次RE预试超标梳状谱与加滤波没用的困惑1.1 频谱上间隔规律的高次谐波指向内置时钟先看频谱特征。当时扫出来的波形30MHz以上每隔12MHz就有一根尖峰幅度从低到高先升后降最高点落在156MHz附近。这个间隔和MCU内置RC的基频完全对得上12MHz的13次谐波是156MHz30次谐波是360MHz44次谐波是528MHz。千万不要觉得12MHz基频低就没事真正害人的是它的一次又一次高次谐波。为什么内置时钟的谐波能跑这么远因为芯片内部的RC振荡器输出的是数字方波上升下降沿动辄两三纳秒一个理想方波的频域能量分布在基频和所有谐波上实际时钟波形即使不是50%占空比高次谐波的能量也非常可观。沿越陡高次谐波的能量越足辐射能力越强。再加上芯片内部还有一个容易被忽略的路径键合线和封装引线框。RC振荡器产生的开关电流流过这些寄生电感nH量级在芯片内部形成压降和振铃再通过封装耦合到外面。这一部分的能量完全不经过你的板级电源入口所以不管你在入口加多大的一堆磁珠它都照样辐射。排查的时候我建议先把频谱仪的span拉开看超标频点之间的间隔能不能对上某个时钟频率。间隔越规律越说明是周期性时钟源而不是DC-DC开关噪声或者随机干扰。这一步虽然简单但能避免后面盲调。1.2 磁珠和LC加了一圈复测纹丝不动的原因第一次整改我其实做了三件事整板电源入口加共模电感DC-DC输出到MCU之间加LC π型滤波沿路信号线加RC。复测结果非常打脸——156MHz基本没变化360MHz还略升。冷静下来分析原因有三个源不在滤波回路上。内置时钟的高频开关电流发生在芯片内部和封装引脚附近板级入口的滤波网络完全在噪声源的下游对源本身几乎没约束。电容和磁珠在高频段都不是理想的干净元件。MLCC有ESL超过自谐振频率后呈感性磁珠的高频阻抗也会因为分布电容而下降。你指望它们压几百MHz的谐波实际效果远低于理论计算。辐射有可能是共模路径。共模电流走的是一条非预期回流路径差模滤波器再强也拦不住共模。所以从那以后我给自己定了个规矩看到滤波加了一堆频谱一动不动第一件事不是继续加滤波而是先定位噪声源头、搞清能量怎么走的。这一步想通了整改才有方向。2. 破局第一板斧用展频把时钟的能量从尖峰摊平2.1 为什么展频能让RE读数掉下来如果芯片的时钟模块支持展频Spread Spectrum ClockingSSC那它基本是处理内置时钟RE超标性价比最高的一招。展频的原理很简单不让时钟永远工作在一个固定频率而是用三角波对时钟频率做周期性调制。比如12MHz做-1%下扩展瞬时频率就在11.88MHz到12MHz之间来回扫。原本集中在一根谱线上的能量被摊到大约120kHz宽的频带里。测量接收机的逻辑是按频点扫描的峰值和准峰值检波器在一个测量带宽CISPR规定30MHz~1GHz用120kHz带宽内取包络。原来的窄带尖峰持续激励检波器读数很高展频之后单个频点在调制周期里只有一小部分时间被激励检波器来不及积累能量读数自然下降。工程经验值我可以说一下下扩展-1%左右多数时候能压掉5~10dB的准峰值具体看基频、谐波次数和展频调制波形的形状。这比你在外面加三级LC滤波器管用得多。2.2 展频参数的实用设置与代价评估展频参数主要是三个扩展量、调制速率、调制波形。扩展量。常见-0.5%、-1%、-2%或者中心扩展±0.75%。下扩展保证最高频率不超原值对有时钟上限要求的系统更安全中心扩展平均频率更准但瞬时最高频率会比标称值高一点。调制速率。一般取30kHz~60kHz。低于20kHz会进入音频范围有时候能听到板子上的蜂鸣超过100kHz意义不大还可能在接收机带宽里被平滑掉太多。调制波形。三角波最常用频谱边缘会有一定驻留凸起如果需要更平的能量分布有些时钟芯片支持自定义波形但大多数场景三角波就够。提示扩展量的上限先看系统里最严格的时序要求。比如给USB全速外设供时钟频率误差必须维持在±2500ppm0.25%那-0.5%都不能直接开。先把高速接口的部分摘出来评估不能一刀切。寄存器配置层面不同芯片差别很大但概念上都差不多给一个伪代码示意具体字段以手册为准/* 伪代码示意支持SSC的时钟控制器 */ CLK_SSC_CFG.Enable 1; CLK_SSC_CFG.Modulation TRIANGLE; /* 调制波形 */ CLK_SSC_CFG.Rate 48000; /* 调制速率 48kHz */ CLK_SSC_CFG.Direction DOWN; /* 下展频 */ CLK_SSC_CFG.Spread 10000; /* 扩展量约-1% */如果芯片根本没做展频功能呢分两步看一是选型阶段直接把有没有SSC写成必选项很多带内置RC/PLL的中高端MCU都已经支持二是老项目不能改芯片只能靠后面几章的去耦、IO串阻和局部屏蔽来补。实测下来后三板斧也能把超标的几个频点摁下去只是要花的功夫更多。3. 破局第二板斧真正管用的滤波在芯片电源脚上3.1 内置时钟的开关电流发生在芯片内部很多同行习惯把滤波放在板级入口觉得只要电源干净了高频辐射就没了。但内置时钟的开关电流不是在电源入口产生的。它在芯片内部的振荡器反相器、时钟树和IO驱动级里每个时钟周期都在VDD和VSS之间形成瞬态电流尖峰电流路径经过键合线、封装引线框再流到外部PCB。这一段路径上的寄生电感每毫米键合线大约1nH量级会和片上电容一起谐振谐振频率往往就在几十到几百MHz。所以你在入口滤得再干净这段内部的谐振照样把能量辐射出来。与其说滤波失效不如说滤波放错了位置——对内置时钟这种源滤波应该贴着芯片放。3.2 多电容近芯片布局的组合实践滤波真正该放的位置是芯片的每一个电源引脚。目标不是把电源滤干净而是给高频开关电流提供一个低阻抗的本地回流路径让它不要跑远。电容组合上我习惯用一组不同容值。单颗电容过了自谐振频率就变感性必须用小容值电容去覆盖更高的频段。经验搭配如下容值封装备注自谐振大致范围作用频段100nF X7R0402/060310~50MHz中低频旁路10nF C0G/X7R040250~150MHz高频旁路1nF C0G0402150~400MHz谐波抑制主力100pF C0G0402400MHz~1GHz以上极高频耦合抑制C0G比X7R在高频段更稳ESR/ESL更小但大容值C0G不好做所以实际组合一般是100nF X7R 10nF X7R 1nF C0G高频问题严重再上100pF。布局要求比容值更重要每个电源脚都就近放电容走线尽量短从电容焊盘直接打孔到地层不要绕。每个电容的过孔独立不要几个电容串到同一个过孔那会让寄生电感叠加。芯片如果有多个VDD/VSS尽量配对放形成最短的回流环路。关注散热焊盘。如果芯片底部有裸露焊盘并且接地必须保证足够的过孔把它和内地层焊死否则散热焊盘就成了一块大辐射天线。我自己做过对比同一块板子在板级入口加一颗100uF加磁珠对360MHz压制效果几乎为零而在MCU电源脚上补了一颗1nF C0G360MHz直接降了2~3dB。同样一颗电容放的位置不一样结果天差地别。4. 破局第三板斧从天线源头掐断辐射路径4.1 时钟相关的IO与走线是真正的天线内置时钟不直接引出到PCB但它的谐波会通过芯片内部耦合到各种IO上PWM、UART、SPI、I2C、LCD数据线、按键扫描线只要这些GPIO和时钟同步翻转它们携带的能量就不输给一根精心设计的天线。再加上驱动器的输出阻抗很低翻转沿可能只有2~3ns用0.35/tr估算出来的信号带宽就到100MHz以上谐波一路可以带到五六百兆。走线到板边、走线跨过分割、走线进排线都会显著增加辐射效率。尤其是排线一根根长的平行导线如果时钟信号旁边没有地线整个排线就变成一组偶极子阵列。处理这类问题第一是减少同步翻转的IO数量能分频的分频能降速的降速第二是从波形上减小边沿能量。4.2 串阻、包地与地平面完整性的落地细节串阻是成本最低的根治手段。在MCU输出IO和走线之间串一颗22~33Ω的电阻和走线寄生电容、接收端输入电容一起组成低通把过冲振铃削掉高次谐波能量会明显降低。阻值选多大我一般是先用33Ω起手如果时序裕量够再加到47Ω如果驱动能力弱、信号边沿本来就不快也可以从22Ω开始。加了串阻之后必须复核时序建立时间、保持时间是否还满足。像SPI时钟如果被拉得太软通讯可能直接失败。实际项目里通常能把2ns边沿放到5~6ns对几百kHz到几MHz的通讯完全没影响但辐射却安静了很多。包地和过孔也是关键。高频走线两侧包地包地过孔间距按3~5mm打别偷懒。地平面完整性上任何电源层或地层分割槽都是阻抗突变点时钟和高速信号线一旦跨越回流电流被迫绕路共模辐射立刻上来。所以Layout阶段就记住一句话不要让和时钟同步的信号线跨分割不要让它们绕到板边裸奔。如果结构上必须走排线就尽量把排线改成信号-地-信号-地间隔排列或者用屏蔽排线并在连接器下方密集打地过孔。串阻是这一板斧的主力因为它从波形源头下手和展频是同一种思路。5. 兜底方案近场定位与局部屏蔽的实操要点5.1 用近场探头快速锁定辐射热点前面几招做完还是差一口气的时候别再盲目换电容了。借一套近场探头H场环探头加E场探头和频谱仪把板子通电在超标频点做单频监测逐点扫探头先悬在芯片正上方看读数然后沿电源入口、DC-DC输出、各组走线、连接器排线依次移动记录每个位置在目标频点上的峰值读数最高的位置就是辐射热点。这里要区分三种情况热点集中在芯片封装周围说明能量主要从封装和引脚耦合出来改善重点在芯片下面的去耦和屏蔽罩热点沿某条走线分布说明走线本身在当天线串阻、包地、改层都比加屏蔽罩优先热点死死咬住连接器那就是共模电流顺着线缆跑出去了要在连接器端口处理共模扼流或改善排线结构。实测下来很多芯片辐射其实有七八成是走线和排线贡献的探针一移就暴露了。这一步能帮你把钱花在正确的地方。5.2 屏蔽罩、吸波与搭接的常见翻车点局部屏蔽是最后的兜底不是首选。真要上屏蔽罩注意几个细节罩体材料选镀锡钢板或铝合金导电性和焊接性都靠谱开孔要克制孔缝尺寸尽量小理论上低于λ/20工程上按几毫米控制开得太大就成了筛子罩体和地之间的搭接要做实点焊间距不能太大否则屏蔽效能几乎为零内部可以贴吸波材料但注意厚度和散热别把芯片闷死。翻车案例我也见过不少屏蔽罩盖住了一整片板子结果旁边的蓝牙天线灵敏度直接掉了十几dB或者罩子开孔太多、搭接不良测出来还不如不加。所以能用源头方案解决就尽量不上罩屏蔽罩是最后一道防线不是第一板斧。6. 一个实际项目的完整处理过程与效果6.1 项目背景、超标频点与第一步尝试这个项目是带LCD的工业控制板MCU用内部12MHz RC时钟没有外部晶振芯片手册里也没看到SSC配置。按EN55032 Class B做辐射发射预测试结果如下超标频点超标情况初步判断156MHz超6.2dB12MHz的13次谐波主要从LCD数据/控制线辐射360MHz超3.1dB30次谐波主要从芯片电源脚封装耦合528MHz贴限0.8dB44次谐波走线末端和排线贡献第一步我按老办法整改整板电源入口加共模电感DC-DC输出加LC还在LCD背光驱动上加了磁珠结果156MHz纹丝不动360MHz反而升了1dB。原因和前面说的一样——滤波加在了噪声回路的末端根本没碰到源头。这一步至少验证了滤波失效不是偶然。6.2 展频参数调试与组合整改结果这板子芯片不支持展频所以我按顺序做了三步硬件改动在MCU每个VDD/VSS脚就近补10nF C0G和1nF C0G间距尽量贴芯片引脚各走独立过孔。实测360MHz降了2.5dB528MHz降了约2dB。给LCD数据线和控制线全部加33Ω串阻放在驱动端同时把LCD排线改成信号地与地间隔排列。156MHz降了3dB360MHz又降了3dB。板边的长走线按3mm间距补包地过孔连接器下方加了一排地过孔。高频段整体又降了2~4dB。最后一版复测全频段最低余量也在6dB以上没上屏蔽罩一次通过。从这个案例里能明显看到顺序的差别如果一开始就在芯片电源脚和IO上动手可能连第一轮加了等于白加的整改都能省掉。多说一句选型层面的经验如果团队有选择余地优先选内置时钟带SSC、且IO驱动强度可配置的MCU这两点在RE整改时的价值比很多指标都重要。我后来再设计类似控制板SSC基本成了硬性要求。最后聊点个人体会。RE整改这行做久了你会发现一个规律凡是滤波失效的案子八成不是缺滤波而是源和路径没看对。内置时钟的超标更是这样——噪声生在芯片肚子里板级滤波器够不着这时候与其疯狂堆磁珠不如先把时钟展频打开再按电源脚就近去耦、同步翻转IO加串阻、走线包地不过分割这三步收拾路径最后剩下的热点才轮到屏蔽罩。这套顺序我调过好几个板子几乎都是越改越顺。下次再看到滤波无效的频谱别急着加东西先问一句噪声源和路径你真的找对了吗
返回列表