十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

用异步SRAM替代SDRAM做EMC整改:从噪声源定位到滤波重设计实战

用异步SRAM替代SDRAM做EMC整改:从噪声源定位到滤波重设计实战 整改周期里最纠结的一个决定不是磁珠选300Ω还是600Ω也不是共模电感要不要绕双线而是把板子上那颗现成SDRAM换成一颗看起来有点“复古”的异步SRAM。当时产品在交流220V进线端做传导骚扰预扫5.2MHz附近超标了差不多18dB滤波链路从X电容换到Y电容再换到两级共模电感怎么调都压不下去。后来用近场探头贴着内存颗粒走了一圈才发现真正的能量源头不是电源入口而是SDRAM那颗持续运行的时钟以及背后的刷新机制。也就是从那天起我开始认真研究ISSI的IS62WV1288DALL这颗128K×8高速异步静态RAM最终用它替换掉原来的SDRAM方案顺带把EMI电源滤波器也做了简化。这篇文章不是要告诉你“某颗料天下无敌”而是把这次替代的完整思路拆开讲清楚为什么SDRAM天生是EMI大户、IS62WV1288DALL哪些参数支撑了这次替代、滤波电路的插入损耗目标到底怎么定、原理图和PCB落地时有哪些坑。内容适合正在做EMC整改的硬件工程师、准备把旧SDRAM方案换掉的项目组、以及所有被并行总线辐射问题折磨过的同行。1. 噪声源定位并行存储总线才是真正的“天线”1.1 从220V端口预扫超标开始的完整排查链路产品是在传导骚扰测试阶段出的问题测试标准对应的频段是150kHz到30MHz我们在5.2MHz附近超了约18dB10.3MHz处的二次谐波也贴着限值线上沿余量不到2dB。一开始团队按常规思路处理先换电源入口的EMI滤波器把原本单级共模电感换成两级X电容从0.47uF加到1uF又在输入端口套了磁环结果只是把10.3MHz附近压低了一点5.2MHz那个峰纹丝不动。这种情况基本可以判断噪声不是单纯从交流输入端口“引进来”的而是在板子内部被某个强辐射源激发后通过线缆共模路径再耦合回LISN测量端。于是我们搬出近场探头配合前置放大器在板卡正常运行时逐点扫描热点非常集中SDRAM颗粒上方、时钟线走线附近、以及SDRAM供电引脚周围。用示波器在这些位置观察时域波形能清楚看到100MHz时钟沿上的振铃上升沿大约1.6ns对应频谱分量轻松覆盖到300MHz以上。这就是典型的高速同步存储器件问题它本身不只是一个存储芯片而是一个在整个板卡上持续发射频谱能量的噪声源。1.2 SDRAM为什么天生就是EMI“大户”很多刚从MCU开发转过来的工程师会有个误区觉得SDRAM结构复杂、容量大、性能好怎么都比SRAM“高级”。但从EMC角度讲SDRAM恰恰是把所有不友好的要素都集合在一颗器件里了。首先它必须有一个持续运行的时钟信号SDRAM不是完全异步的内部状态机每一步都跟着时钟沿走。其次它需要周期性刷新哪怕CPU完全不访问它芯片内部也在不停做行激活、预充电、刷新这些大电流动作这些动作在时域上是周期性的在频域上就会形成一系列离散谱线。第三SDRAM的数据总线在burst传输时多位同时翻转SSO同时开关输出产生的瞬态电流叠加会在电源和地网络上制造很大的di/dt。打个比方SDRAM就像一个全天候播报的电台不管有没有人听它都在那儿发射信号。而异步SRAM更像一个对讲机没人按下通话键的时候是完全安静的只在CPU发起读写事务时才会有总线活动。这个差异在EMI治理上是非常关键的因为电磁干扰本质上是一个“能量在时间和空间上叠加”的问题一个非周期的、突发性的信号在频谱上能量会分散开而一个持续周期信号则是把能量集中到离散频点上后者更容易超标也更难用滤波的方式“扣掉”。IS62WV1288DALL就是典型的完全异步静态RAM没有内部时钟、不需要刷新、没有PLLCPU不去碰它的时候整颗芯片几乎处于静止状态这决定了它在EMI表现上具备天然优势。2. IS62WV1288DALL选型逻辑替代不是简单换颗料2.1 这颗料的基本盘和引脚兼容性选择ISSI的IS62WV1288DALL并不是拍脑袋决定的。这颗料的基本参数如下容量是128K×8bit供电范围2.5V到3.6V访问速度有8ns、10ns、20ns等几个档位典型封装是TSOP-44工业级版本温度范围覆盖-40℃到85℃。它跟市面上大量异步SRAM的引脚定义高度兼容A0到A16共17根地址线DQ0到DQ7共8根数据线控制信号是CE#、OE#、WE#有些封装带UB#/LB#字节使能。这种标准异步接口意味着绝大多数MCU或者应用处理器上的静态存储控制器比如STM32的FMC/FSMC、NXP i.MX的WEIM等都可以直接对接不需要改动硬件架构只需要改时序配置。在我这个项目里CPU原本连接SDRAM的是内存控制器我们把SDRAM槽位重新映射到静态存储控制器通道电平、引脚、控制逻辑都能匹配改动的阻力比想象中小得多。2.2 为什么不用Pseudo SRAM、MRAM或者FRAM可能有人会问现在不是有PSRAM伪静态RAM、MRAM、FRAM这些“更先进”的选择吗这里有一个很容易被忽略的EMC视角。PSRAM本质上是一颗带内部刷新逻辑的DRAM核外面包了一层SRAM接口它还是需要周期性刷新内部还是有一个不断运行的状态机在EMI特性上和SDRAM没有本质区别只是把麻烦藏在了芯片内部。MRAM和FRAM在辐射特性上确实不错但一是供应链和成本没有优势二是在这个项目里只需要128K容量用MRAM/FRAM属于“杀鸡用牛刀”。IS62WV1288DALL是真正的完全静态结构没有隐藏的周期动作数据手册上也写得清楚只要不断电数据靠CMOS锁存结构保持不需要任何刷新命令。对EMI整改来说不需要刷新这件事比什么“先进工艺”都重要。2.3 “替代EMI”的真实含义用低噪声源替代整套抑制方案项目复盘时同事开玩笑说这个项目是“用一颗SRAM替代了EMI部门”。话虽然夸张但思路确实是这样。原来的方案里为了把SDRAM时钟和总线的辐射压下去我们在电源输入口上了两级EMI滤波器在SDRAM供电上加了四五颗磁珠还考虑过加展频时钟芯片。整套抑制链路占了不小的PCB面积BOM成本也不低更麻烦的是这些滤波器件本身也有插入损耗和寄生参数经常会引入新的谐振点。当我们把噪声源从SDRAM换成了IS62WV1288DALL之后很多原本为“堵噪声”而加的东西都不再需要了。所以标题里说的“替代EMI”完整的含义是用一个本身低噪声的存储器技术方案替代掉原本为压SDRAM的EMI所设计的那一整条滤波与抑制链路。这个思路比单纯换一颗料要值钱得多。3. 滤波电路重设计插入损耗不是越大越好3.1 从LISN测试反推需要的插入损耗EMI电源滤波器最核心的指标是插入损耗Insertion Loss定义是滤波器接入前后负载上电压的比值换算成分贝IL20lg(V1/V2)。很多工程师选滤波器时有一个朴素观念插入损耗越大越好其实不是这样。插入损耗是和频率强相关的两级滤波器在10MHz以上通常能提供40到60dB的抑制但在150kHz这个低频段可能连5dB都不到。我们这次整改真正要做的不是盲目堆高插入损耗而是根据噪声源的变化反推一个“够用就行”的目标。先看原方案的状态。旧方案里SDRAM是主要噪声源两级滤波器在5.2MHz频点实测提供了约40dB的插入损耗整机测出来仍然超标18dB说明噪声源本身的能量太高靠滤波器“堵”已经到瓶颈了。替换成IS62WV1288DALL之后我们重新用近场探头在原来热点位置测量同样带宽下噪声频谱幅度大约下降了20dB到25dB。也就是说源项降下来了对滤波器后端的要求也相应降低。于是我们把两级共模电感简化为一级X电容从1uF降到0.47uF实测5.2MHz处整体余量达到8dB整个频段都留有至少6dB的余量。做一个粗略的估算IL_target IL_old - source_reduction margin即40dB - 20dB 6dB 26dB一个性能在线的一级共模滤波器完全可以覆盖。这就是“插入损耗不是越大越好”的工程含义——够用、有裕量、不会引入新的谐振才是合理的滤波设计。3.2 磁珠与去耦电容网络时域电流回路才是根本滤波器降低了从板卡传到220V入口的共模电流但板内总线翻转产生的瞬态电流仍然需要在源头得到抑制。异步SRAM总线访问时地址线和数据线同时翻转8位数据最多可能在同一时刻切换瞬间抽取电流的斜率很大。如果这个电流回路的阻抗高就会在电源网络上产生电压跌落和地弹直接把噪声耦合到整块板子。我在这颗IS62WV1288DALL的电源脚附近做了典型的去耦组合每个VDD脚到地放一颗0.1uF的X7R陶瓷电容旁边再放一颗0.01uF的高频电容再往外围加一颗4.7uF的钽电容做中低频储能。三个容值覆盖的频率范围不同0.1uF处理几十MHz量级的去耦0.01uF处理上百MHz的高频分量4.7uF则稳定电源轨。电源入口处再串一颗磁珠要注意选型时看阻抗-频率曲线而不是只看100MHz阻抗值这一点后面避坑章节会细说。3.3 滤波性能被“意外”抵消时的备选手段换完SRAM之后原先很多超标频点自然消失但并口总线在突发访问时还是会有残余能量。这种情况下我习惯的优先级是先在驱动端加串联匹配电阻把信号边沿变缓再考虑RC吸收网络最后才考虑展频时钟。串联匹配电阻是最简单性价比最高的手段地址线、数据线上各串33Ω排阻放在CPU输出端能有效压低信号振铃辐射频谱能下降好几个dB。RC吸收网络用在控制信号上比如CE#、WE#这些低频控制线加上一个小电容到地形成低通但电容不能太大否则会拖慢边沿影响时序。展频时钟属于“最后手段”因为它虽然能把峰值能量分散但会让系统的时序抖动变差通常只有当所有无源手段都用尽、仍然超标时才考虑。实际在IS62WV1288DALL方案上我们靠串联电阻和去耦改进就解决了问题压根没上展频。4. 从原理图到PCB落地换料最容易漏掉的一步4.1 时序重读不是“接上就能跑”异步SRAM接口简单但不意味着可以无视时序直接接上跑。IS62WV1288DALL的读周期里有几个关键参数地址建立时间、CE#访问时间、OE#访问时间、数据输出有效时间写周期则关注WE#脉冲宽度、地址建立时间、数据建立时间和数据保持时间。这些参数在数据手册里都有最大值和最小值但实际配置时必须给足降额空间不能贴着极限值跑。我这边用的是STM32的FMC接口把SRAM挂在NOR/PSRAM bank上配置时把AddressSetup设为2个HCLK周期DataSetup设为4个HCLK周期HCLK跑40MHz这样一次读写周期大约在150ns左右对一颗8ns/10ns的SRAM来说余量非常充裕。可能有工程师会觉得既然芯片最快能跑8ns为什么总线只跑40MHz这里有个容易忽略的点总线速度越快信号边沿越急EMI几乎成正比恶化。异步SRAM的容量本来就不大我们产品在这个存储区域的数据吞吐需求也不高完全没必要把总线跑到100MHz以上。把总线主动降速换取更低的EMI和更可靠的时序这是SDRAM方案不具备的调节空间——SDRAM的工作频率由电源时钟决定你很难单独降下来。4.2 PCB设计清单等长、匹配电阻和参考平面换掉SDRAM之后原来为100MHz时钟设计的PCB走线布局需要一并调整。IS62WV1288DALL虽然是异步器件但数据总线在读写瞬间仍有几十MHz的翻转频率上升沿如果控制在2ns左右信号频谱还是能延伸到百MHz以上。所以布线规则不能因为“低速SRAM”就放松。我的做法是地址线、数据线、控制线三组分别做等长组内偏差控制在±25mil以内每一根地址线和数据线在驱动端串联33Ω匹配电阻走线尽量走在完整参考平面上方避免跨越电源轨分割区。整组SRAM总线走线总长尽量控制在50mm内如果超过这个长度信号完整性问题会明显增加串阻的压振效果也会打折。去耦电容的摆放同样有讲究。很多人把电容放在SRAM旁边就以为完事了实际上电容到VDD引脚的过孔距离如果超过1mm本身的寄生电感就会让电容在高频下失效。我习惯把0.1uF和0.01uF两颗电容直接放在IC的同侧过孔紧贴焊盘打下去连接到内层的完整地平面和电源平面。磁珠则放在电源进入这颗IC的入口处和去耦电容形成LC滤波结构位置顺序是电源轨先过磁珠再接大电容再分支到小电容和IC的VDD脚。4.3 替换后的BOM变化和成本测算这次整改不仅是换了芯片还把一整条EMI抑制链路简化了。新旧方案对比如下项目原SDRAM方案新IS62WV1288DALL方案存储颗粒SDRAM 1颗IS62WV1288DALL 1颗时钟源有源晶振PLL/展频不需要额外时钟源刷新逻辑SDRAM控制器刷新命令无刷新动作电源滤波两级共模电感大X电容单级共模电感常规X电容磁珠数量5颗以上2颗走线复杂度需要匹配100MHz时钟等长串阻即可最终BOM成本大概下降了三分之一PCB面积省出一块约为拇指大小的区域这个区域后来被用来加强电源平面的完整性设计。换料并不是简单地把SDRAM封装改成SRAM封装而是一个从系统架构层面重新思考“哪些抑制措施是必须的哪些只是因为噪声源太恶劣才不得不加”的过程。5. 实测数据与整改迭代噪声源换掉之后的变化5.1 传导骚扰测试结果分析整改完成后我们在同样的电源端口、同样的测试环境下重新做传导骚扰测试。原方案在5.2MHz处峰值超出限值约18dB10.3MHz处超出约6dB。换成IS62WV1288DALL后5.2MHz处变成低于限值8dB10.3MHz处变成低于限值15dB整个150kHz到30MHz频段最差的一点仍有6dB余量。这个改善幅度超出了预期因为按近场探头看到的数据源项下降是20dB左右加上简化滤波器后插入损耗降低的负作用理论上余量应该在3到5dB实际测出更优原因是原来的两级滤波器在某些频段存在谐振反峰实际上并没有发挥出理论插入损耗值简化之后反倒把反峰问题一起去掉了。5.2 辐射骚扰测试结果分析辐射频段的变化更直观。原SDRAM方案的100MHz时钟在240MHz和480MHz附近都有明显的窄带峰这两个频点都贴着B类限值走。替换成IS62WV1288DALL之后30MHz到1GHz的整个扫描范围内背景底噪明显下降240MHz和480MHz不再有窄带脉冲最差频点距离限值也有至少12dB的余量。这说明移除SDRAM持续时钟后原先由时钟谐波主导的辐射问题已经基本消失。异步SRAM在CPU不访问时没有信号活动近场探头放在芯片上方只能看到环境底噪这是SDRAM方案完全做不到的。5.3 功能稳定性验证EMI达标只是第一步存储器的功能可靠性同样关键。我们在替换后跑了72小时的连续读写测试数据模式包括0x55/0xAA交替、递增地址、随机数、以及模拟真实业务数据的混合模式全部读写比对一致。还做了-40℃到85℃的温度循环测试在高温和低温极限下反复读写没有出现偶发错误。需要特别说明的是异步SRAM是易失性存储上电后内容是不确定的软件里必须有初始化逻辑不能像某些铁电和MRAM那样期待上电就能读到有效数据。这一点虽然简单但忘了初始化会导致第一批出货的产品出现随机启动异常属于非典型但真实存在的坑。6. 换料整改中三个没写进数据手册的坑6.1 坑一号称8ns的料在40MHz总线上反而出错第一次改动后我们曾尝试把总线时钟提到80MHz希望榨干这颗SRAM的性能。结果在高温老化时出现了偶发读写错误频率不高但不可接受。排查下来不是芯片的访问时间不够而是CPU静态存储控制器的信号完整性问题FSMC数据线在总线高速切换时沿过冲导致数据采样窗口抖动。最终我们退回40MHz总线频率稳定跑了一整个温度循环批次后再没出过问题。教训是数据手册上的8ns是常温、标准负载下的极限参数实际系统里还有走线电容、过孔电感、供电跌落和温度漂移必须留足20%以上的时序余量不能拿极限值当设计值。6.2 坑二磁珠谐振让某个频点“越滤越脏”简化滤波方案后有一版设计传导测试低频段全绿但18MHz左右反而冒出一个新的尖峰比改进前还高了6dB。后来用阻抗分析仪测了磁珠发现这颗磁珠在十几MHz频段处于感性区和旁边4.7uF钽电容构成了一个并联谐振电路谐振阻抗拉高反而阻挡了高频去耦路径。此后选磁珠我就学乖了先看厂家提供的阻抗-频率完整曲线而不是只看数据手册首页的100MHz阻抗值。同样容值的电容也要看自谐振频率不同封装和介质谐振点差异很大不能只看容值盲目并。6.3 坑三近场探头数据缺乏可重复性整改过程中出现过一次乌龙近场探头放在同一位置上午测和下午测数据差了很多一度以为是SRAM批次问题。后来发现是探头到频谱仪的线缆位置在测试过程中被碰歪了线缆本身在强电磁环境下也会拾取噪声。从那以后我们固定了所有测试条件探头用夹具固定、记录探头角度和距离、频谱仪用Peak Hold模式扫描多圈取包络、至少测三次取一致性最好的结果。拿近场数据做相对对比是可以的但绝对不能把近场探头数据当成正式超标依据正式结论必须回归到标准限值和规范测量环境。写在最后的一点体会这次项目做完我养成了一个习惯评估任何一颗存储器件的时候先问一句它在待机状态下有没有周期性动作。这颗IS62WV1288DALL最打动我的地方不是哪项参数特别亮眼而是它把“安静”这件看似理所当然的素质做到了极致。EMC整改做到最后很多时候不是往板子上堆更多滤波器件而是想尽办法让板子的源头少发点噪声。如果你正在被类似的总线辐射问题折磨不妨先放下手里那颗磁珠回头审视一下噪声源本身也许同样的整改思路能帮你也省掉不少麻烦。
返回列表