首页/文章/ 详情

DC/DC布局做对了,EMI真的会好很多

1天前浏览22
最近读了一份TI官网公开的文档,对DC/DC电源的布局和EMI这块讲得很好。看完最大的感受就是:布局做对了,EMI真的会好很多。

今天我就把文档里我觉得比较重要的内容整理出来,同时把源文件也分享给大家,希望对大家有帮助。

01

电路简介

先来看参考原理图。主芯片是TPS2583X,TI的汽车级USB Type-C和BC1.2充电端口控制器,里面集成了一颗同步降压 DC/DC。它虽然不是专门的DC/DC 芯片,但布局思路还是很有参考价值的。

下图是整个系统的电路框图,分三块:LISN、FILTER和DC/DC转换器。LISN提供标准测试阻抗、隔离外部噪声,FILTER滤掉输入端的干扰,DC/DC转换器则是核心功率级。

下面重点聊DC/DC这块,因为它的布局和EMI表现,直接决定整块板子能不能过 CISPR25 Class5。如下把DC/DC单独拎出来看。

输入有两个10μF(C7、C8)+ 一个 0.1μF(C9)+ 一个 2.2nF(C10)。C9 对 40MHz 以上的 EMI 抑制效果很好,C10 能压 100MHz 以上的噪声。C10的值可以根据实际PCB寄生参数在2.2nF附近微调。

储能电感推荐8.2μH。选屏蔽电感或一体成型电感,直流电阻和磁芯损耗越小越好。

输出电容有三个22μF(C11、C12、C13)+ 一个 2.2nF(C14)。C14用来压 30MHz 以上的 EMI,值可以在1nF到100nF之间根据测试结果调整。

这里有个关键点:不同容值的电容并联,才能滤不同频段的噪声。10μF + 0.1μF + 2.2nF 这个组合不是随便写的。

02

PCB布局对比

下图是一个典型的能工作但EMI不行的布局。绿色框是输入电容,黄色框是储能电感,蓝色框是输出电容。这个layout主要有四个问题点:

问题1:A点
输入电容的VIN+端口。小容值高频滤波电容应该紧贴芯片,大容值电容可以稍远。
问题2:B点

电感和 SW 引脚的连接点。电感垂直放、L形或T形铜皮,都会形成直角。直角会导致阻抗突变,信号反射,EMI直接变差。

问题3:C点

输出电容的地,离芯片PGND引脚太远。

问题4:D点

输入电容的地,同样离PGND太远。

下图是这种布局的实测曲线,可以看到低频段和高频段都有明显超标。

那布局怎么优化呢?如果你的成本或工艺要求只能用单面布局,那就得注意输入滤波器和输出功率级之间的距离。

黄色箭头标出的距离不能小于15mm。输出功率越大,这个距离要越长。目的是防止输入输出功率电路的高频信号耦合到输入滤波器里,导致滤波器失效。

另外,输入滤波器的地和功率电路的地要彻底分开,最后在滤波之后的C点汇合,再连到功率电路的地。

来看看如下电路图,红色框是Ia环路,蓝色框是Ib环路。

A、B、C、D 四条线都要尽可能短。其中A线和D线的di/dt最大,要更严格,要又短又宽,降低 PCB 寄生电感。输入电容的 VIN+ 端口要尽可能贴近芯片引脚。一个输入电容靠近芯片,另一个跨接在 SW 上,保证 VIN 到 PGND 的路径最短。

B 点是整个环路里dv/dt最大的地方。 在满足散热和载流的前提下,铜皮面积越小越好,降低寄生电容。SW走线绝对不要打孔贯穿整个布线。 所有信号线和敏感器件都不要从SW走线或电感下面穿过,否则高频开关信号会通过寄生电容耦合过去,引起振荡。

C 点和 D 点的地也很关键,铜皮要又短又宽。

如下是实际PCB layout。

同时接地要处理好,信号地 AGND 和功率地 PGND 在实际 layout 中要分开,减少功率地的波动干扰信号地。

所有信号地的公共连接点最终汇聚到芯片的接地引脚,AGND连到散热焊盘。芯片散热焊盘是所有地线的公共连接点。功率地或输入输出电容要尽可能靠近芯片的PGND引脚。

下图是单面布局优化后的实测曲线,比原来干净了不少。

有些客户为了降成本、缩 PCB 尺寸,会用双面布局。输入滤波器尽量放在底层,减少输出高频部分对输入滤波器的耦合。红色框就是输入滤波器区域。

双面底层布局

B 点的 SW 线要尽可能短,输出电感尽可能靠近芯片。一个输入电容放在顶层靠近芯片 VIN 引脚,另一个放在底层。电容一端靠近芯片VIN输入,另一端靠近芯片PGND引脚的过孔,保证VIN到 PGND路径最短。

双面顶层布局

下图是双面布局的实测曲线,效果也不错。

最后我整理了一张表格,总结几条布局要点

这份报告里的实测曲线很有说服力,layout 改前改后的差别一目了然。如果你正在做 TPS2583X的方案,或者任何buck电路的layout,上面这些点都值得对照检查一遍。

来源:硬件笔记本
寄生参数电源电路汽车电子芯片储能控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-10-15
最近编辑:1天前
硬件笔记本
本科 一点一滴,厚积薄发。
获赞 160粉丝 54文章 1129课程 0
点赞
收藏
作者推荐

做机器人控制的,建议这篇先收藏,早晚用得上

关于机器人,我之前陆续写了几篇文章。今天再给大家分享一套方案,能用在机器人控制上,底层硬件和软件都有。如果说我以前的文章偏硬件,那这篇就比较偏软件。文章有一定专业性,不做这块的朋友可能不太好懂。但万一哪天用得上,还是挺有帮助的。建议先收藏,需要的时候再翻出来看看。01前言怎么让机器人看起来更像真人?我觉得很重要的一点就是反应要对。你跟我说一句话,我能接上话,或者做出对应的动作,至少不显得奇怪。机器人身上有多个关节、很多电机,需要多轴联动。比如跑步,什么时候出左脚、什么时候出右脚、什么时候跑快、什么时候跑慢,早一点晚一点都可能摔倒。用专业话说就是:每一次控制指令,必须在精确的时间点发出去,不能早也不能晚。说好每1ms发一次,就不能是0.5ms,也不能是1.5ms。节奏一乱,轨迹就抖,多轴同步就对不上。麻烦的是,现在不少机器人控制器跑的是Linux。Linux本身是个通用系统,要同时照顾网络、文件、界面、后台服务……控制线程只是其中之一。哪怕优先级设到最高,周期说抖就抖。那怎么办?咱们拿米尔MYD-LR3576开发板为例,他们官方出了参考案例,我结合自己的理解,跟大家聊聊这套方案是怎么落地的,以及在CPU隔离核和满负载压力下,通讯抖动怎么控制在ns到us级。02EtherCAT是机器人最主流的通讯方式为照顾到大多数朋友,咱们先说说什么是EtherCAT。你可以把它理解成一条工业现场的高速数据总线。主站是调度中心,从站是各个执行节点,伺服电机、IO模块、传感器都算。数据报文像一列不停站的高速列车,把所有节点的信息一站收齐、一站下发。它跟普通以太网最大的区别就一个字:准。普通以太网讲究尽力送到,EtherCAT讲究必须按时送到。工业现场多轴联动,靠的就是这个准字。那这套东西靠什么跑?靠的是IgH EtherCAT Master这个开源协议栈。它跑在Linux内核空间,直接从驱动层收发报文,不走用户态那一套调度。好处是确定性好,配合分布时钟同步,能做到很精确的周期控制。对懂行的工程师来说,IgH的好处很直接:能跟分布时钟配合,主站跑在内核里,跟通用以太网驱动搭得很顺,命令行和API也都有。它的抖动水平,直接反映整个实时系统的品质。我们要做的,就是让这个调度中心的心跳,在这个平台上跳得更稳、更准。03在RK3576上运行EtherCAT测试环境交代一下硬件:米尔MYD-LR3576核心板,RK3576处理器,4个A72加4个A53,双千兆网口;4台SV630N伺服驱动器,配汇川MS1H4电机。软件:buildroot系统,内核6.1.118打了Preempt-RT补丁;IgH EtherCAT Master 1.6.0;主站内部高精度时间戳做测量。测试口径:抖动定义就是实际周期减目标周期,正值是超调,负值是滞后;最大值最小值平均值都是原始数据直接算,没剔启动阶段测量方法:主站自己带了一个高精度时间戳,每个周期开始时记一下,两个起点之间的时间差,就是实际周期时长;空载和压力测试每组跑30分钟以上,长拷机跑12小时;压力测试用stress-ng对0到6核施加CPU满载、内存读写、IO压力,同时用hackbench制造调度延迟;从站是4台SV630N,标准PDO映射,DC同步以第一个支持DC的从站为参考时钟。测量方法:主站自己带了一个高精度时间戳,每个周期开始时记一下,两个起点之间的时间差,就是实际周期时长。空载测试:922纳秒是什么水平先看空载。主站配成1ms周期同步速度模式,CPU核7专供主站实时线程,内核锁内存,线程优先级拉满,系统除了串口没其他负载。连续跑半小时,1ms周期下最大抖动922ns,平均22ns。ec_stmmac.ko 1000Hz 空载抖动:最大 922ns,平均 22ns然后切到125微秒周期同步位置模式,也就是每秒8000帧,电机做连续微步定位。这个频率下,ec_stmmac.ko驱动的表现是:最大抖动还是922纳秒,平均22纳秒,执行耗时12.7微秒。换ec_generic.ko通用驱动的话,125微秒空载下极端抖动正负11.7微秒,平均21.1纳秒,执行耗时26.4微秒,大于1微秒的尖峰只有1次,占比0.054%。说实话,922纳秒这个数字,放在工业控制场景里已经相当能打了。很多传统方案还在微秒甚至毫秒级别晃悠,亚微秒级的抖动意味着上层轨迹规划有一个非常干净的时钟基准。直观感受就是电机噪音会小很多,多轴同步的精度也会明显提升。压力测试:系统忙起来还稳不稳空载好看不稀奇,关键是系统忙起来的时候还能不能稳住。我启动stress-ng,对0到6核施加满负载,CPU跑满、内存轮番读写、文件系统疯狂IO,同时用hackbench制造大量调度延迟。这种情况下,隔离核7上的EtherCAT实时线程表现如下:1ms周期压力测试:ec_stmmac.ko:最大抖动1.63微秒,平均121纳秒,大于1微秒尖峰283次,占比11.58%ec_generic.ko:极端抖动正负33.7微秒,平均36纳秒,大于1微秒尖峰只有5次,占比0.21%125微秒周期压力测试:ec_stmmac.ko:最大抖动1.30微秒,平均57纳秒,大于1微秒尖峰仅1次ec_generic.ko:极端抖动正负43.5微秒,平均26.3纳秒,大于1微秒尖峰10次,占比0.55%ec_stmmac.ko 8000Hz 压力测试:最大 1.30μs,平均 57ns这里有个很有意思的现象。ec_generic.ko在压力下虽然大于1微秒的尖峰很少,但极端抖动值能到正负33.7微秒,说明它偶尔会抽一下大的。而ec_stmmac.ko在8000Hz下只有1次超过1微秒,极值控制在正负1.30微秒,高频场景下优势非常明显。作为硬件工程师,我的理解是:ec_stmmac.ko是专门针对RK3576的STMMAC千兆网卡做了适配的,在NAPI调度和硬件时间戳上都做了优化,报文收发路径更短更确定。ec_generic.ko通用性强,但走的是通用路径,极端情况下的瞬时抖动就压不住。ec_generic.ko 8000Hz 压力测试抖动分布:极端情况到 ±43.5μs,超过1μs的只有10次满负载压力下的实时隔离示意:非隔离核跑得再满,隔离核上的抖动照样稳在亚微秒级12小时长拷机:0丢帧125微秒周期位置模式连续跑12小时,模拟车间日夜不关机的场景。ec_stmmac.ko 8000Hz 长拷机抖动分布:47512 条记录,最大 1.25μs结果:0丢帧,主站状态机没发生过一次OP到SAFEOP的异常跳变DC时间漂移补偿稳定在正负20纳秒以内抖动统计和1小时测试高度吻合,没有周期性尖峰,也没有缓慢恶化这个结果说明这套方案不只是能跑,而是能长期稳定跑。对于要从打样走向量产的设备来说,这个底气很重要。04细节展示:从内核到代码,一层层拆开看如果你能看到这儿,说明你是真爱了,下面是更加专业的知识点,让工程师了解低抖动背后,到底是什么在起作用。驱动选择是关键ec_stmmac.ko是米尔专门为RK3576的STMMAC千兆以太网控制器适配的实时驱动。标准Linux网卡驱动用中断模型,响应时间受内核调度器影响,满足不了EtherCAT周期性通信的确定性要求。ec_stmmac.ko在通用MAC驱动基础上,针对Preempt-RT内核做了NAPI调度优化,开了硬件时间戳,把报文收发的时间标记和中断处理延迟压到最低。ec_generic.ko是通用IgH网卡驱动,兼容性好,但执行效率低。1000Hz下耗时32.3微秒,是ec_stmmac的近3倍。IgH 驱动栈与 Preempt-RT 内核的关系内核配置要精细内核6.1.118-rt36,启用CONFIG_PREEMPT_RT完全内核抢占CONFIG_HZ=1000提高定时器精度CONFIG_HIGH_RES_TIMERS=y,CONFIG_NO_HZ_FULL=y针对隔离核关闭无干扰时钟CONFIG_CPU_ISOLATION=ybootargs:isolcpus=7 rcu_nocbs=7 nohz_full=7 irqaffinity=0-6这样隔离核7上几乎不处理内核杂务和中断,全部算力留给EtherCAT实时线程。应用层四件事1、mlockall锁定内存,避免缺页延迟;2、实时线程设SCHED_FIFO优先级99;3、CPU亲和性绑定,实时线程在核7,日志监控等非实时线程在核0-6;4、DC同步配置,以第一个支持DC的从站为参考时钟,补偿静态漂移,周期任务与DC信号对齐。隔离核和非隔离核线程分配——实时线程占着核7,日志、界面都扔到别的核上,互不打扰05两种驱动怎么选对比数据如下:ec_generic.ko适合:系统有CPU压力负载,压力下大于1微秒尖峰仅5次,比ec_stmmac的283次少很多运行频率较低,大概1000Hz左右,执行耗时不是瓶颈不能容忍偶发性大抖动中断控制流程用独立PCIe网卡而不是DWMAC内置MACec_stmmac.ko适合:CPU资源充裕、无压力干扰,抖动低至922纳秒,执行耗时仅11微秒高频率运行,8000Hz及以上,执行耗时优势明显,压力下表现反而更好长时间不间断运行,47512条记录仅10次微小超限对执行效率有要求,每周期能省约20微秒CPU时间测试现场图片简单说:ec_stmmac.ko性能好效率高,但CPU压力场景下大于1微秒尖峰多;ec_generic.ko慢一些,但低频压力下尖峰少,抗突发干扰好。选哪个看你的实际负载特征和周期要求。06几个落地时容易踩的坑1、中断亲和性别马虎光隔离CPU不够,还得通过/proc/irq/*/smp_affinity把千兆网口中断绑到非隔离核,否则隔离核会被频繁唤醒,前面做的隔离就白费了。2、实时驱动别用错通用网卡驱动在RT内核下可能出现锁反转,务必用适配的ec_stmmac驱动。遇到丢帧先检查DMA缓冲区大小和中断合并设置。3、DC时钟冷启动要等刚进入OP状态时,驱动系统漂移补偿需要几秒收敛。建议应用层检测DC稳定标志后再开始严格同步的运动指令,别一上来就发。4、监控别打扰实时线程实时数据通过共享内存传到非RT核,由非实时核负责存储或网络上报。直接printf或者写磁盘,会引起各种意想不到的延迟。这套方案还能怎么用RK3576内置6 TOPS NPU,双千兆以太网。这套EtherCAT主站方案能满足32轴甚至更多轴的微秒级同步控制,还能无缝融入边缘AI推理。想象一下,同一块板子上,隔离核跑125微秒高精度运动控制,其余核跑视觉抓拍和缺陷检测。这种运动+视觉实时一体化架构,能大幅简化产线控制器设计,对柔性制造、协作机器人这些领域来说,是个很实用的思路。米尔MYD-LR3576开发板接口完备,工业级温度范围,本身就可以作为量产核心板直接嵌入设备,缩短产品上市周期。07总结基于MYD-LR3576的RK3576平台,配合Linux Preempt-RT实时内核和IgH EtherCAT Master,可以构建具备工业实时控制能力的EtherCAT主站方案。测试条件下能稳定运行1ms和125微秒控制周期,长时间测试主站状态稳定。ec_stmmac.ko专用驱动在执行耗时和高频周期场景下优势明显,适合8000Hz等高控制周期应用。ec_generic.ko通用驱动兼容性更好,适合快速验证和通用网卡场景。实际项目里怎么选,结合周期频率、极端抖动容忍度和开发维护成本来定就行。来源:硬件笔记本

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈