EMC信号完整性落地实测1---走出玄学

无论我们从51单片机,STM32电路,运放,传感器,ADC采集还是可控硅晶闸管等等电源电路跨入到电子工程师的行业,我们通常会长时间处于低频的电子电路设计调试阶段,通常我们处理的是几百Hz或者几K Hz的信号通路。偶尔会有RS232,RS485,IIC,SPI或者CAN总线之类的通讯让我们的PCB经历几百K Hz的信号。这些其实涵盖了大部分的电子应用场景,我们在这个阶段更多的关注电路功能的实现,并没有也不太需要考虑信号完整性或者EMC的问题。

总有一天我们会在新的项目中发现我们遇到了一些瓶颈。有时候通讯会莫名其妙的通讯错误,有些PCB板子会莫名其妙的有很大的干扰,达到M级信号的板子按以前的布线习惯变得不再稳定可靠。这时,阻碍电子工程师进阶的EMC和信号完整性问题摆在了我们面前。如果你遇到了类似的问题,那么恭喜,说明你已经到了另一个新台阶了。

EMC和信号完整性是独立于电子电路功能设计的另一门学问了,我们可以找到很多这方面的资料,大部分会告诉我们理论知识和经验准则。比如,在高速信号的情况下,电容电阻都不再单纯的看做是电容和电阻了,甚至连路径上的过孔也会有影响。PCB布线不再是布通就可以了,还需要考虑信号流动的路径;布线和布线之间的间距以及下方是否铺地也要考虑了,甚至关键的信号布线长度都需要考虑等等。这些对于射频工程师来说都是需要掌握的基本技巧,对于其他领域的广大电子工程师来说,这些就是高手和普通选手之间的进阶知识了。

对于大多数工程师来说,EMC和信号完整性的一些经验法则,近乎玄学,我们知道要按照这条法则去做,但是并不直观的知道这样做和不这样做差别多大,没有直观的感受。因为这些法则的总结是靠非常昂贵的专业设备,在不计成本的实验中总结的,我们普通大众电子工程师是没有机会去做实验感受和吸收的,只能被动接受这样的理论指导,完全没有其他电子电路知识那样的体验。

我们通过LOTO虚拟示波器和它的EMC测试模块,对一些重要的EMC和信号完整性经验法则进行直观的落地实测,方便大家直观看到,这些法则的效果,打破玄学,加深理解。

我们动手的第一条法则:信号发射出去的驱动路径和回流到地构成的返回路径,围绕出来的环路面积越小越好。环路面积越大,造成的噪声耦合和EMI电磁干扰越严重。

如下图所示:

为了落地实测,我们简单做了一个实验板,原理图和PCB如下所示,有需要的同学可以直接跟我要源文件:

板子使用USB供电或者外接5V电源供电,一个电源开关,放了4个3.3V的有源运放,分别是80M,48M,11M,3.68M。当然你可以放自己想要观测的频率的晶振。这些晶振通过跳线选择一个晶振频率输出,沿着A出发,经过2号区域,到3号区域,然后经过4号区域返回到5号区域。在PCB右侧的跳线可以选择这个晶振信号的负载电阻是多大,从1M到200欧可以选择一个。这样我们可以直观看到,一个高速信号,频率是跳线选择的晶振频率,在PCB上驱动了一个跳线选择的负载电阻,形成了PCB丝印上的A->C的环路。我们也可以在两个跳线上通过跳线把沿着信号布线下面的一条地线连接通,那么信号的环路变成了A->B,比原来的A->C小了环路面积小了很多。我们看下实物:

我们选择48M晶振,然后使用负载100K,使用A->C环路,LOTO虚拟示波器OSCH02,以及E01模块,我们实测1区域的EMC信号完整性的情况,搭建场景如下:

我们在测试板的1号区域,测得EMI的频谱如下所示,可以看到有一个幅值非常大的48MHz的电磁辐射,幅值超过了0.15V:

我们可以以48M为中心频率,查看细节:

我们保持其他不变,通过接地跳线把信号的地回路改为A->B,同样在测试板的1号区域,测得EMI的频谱如下所示,可以看到48MHz的电磁辐射明显减小,幅值变为0.073V:

同理,我们测下3.68M晶振的也是类似的情况,如下图所示,规律也是环路面积大,EMI电磁干扰强度就大,不同的是,3.68M晶振的频谱图里会看到很多谐波分量,这是由于我们这个窗口的监测范围是125M,在这个范围内,可以显示3.68M的多次谐波。晶振本身是近似方波的信号,所以会有很多次谐波,只是之前测的48M的多次谐波超出了窗口观测范围没有看到而已。高次谐波并不是客观存在的,他是FFT的数学表达,我们在观测EMC的频谱时要注意这一点。

我们很直观的看到,同一个高频信号,在PCB电路板上不同的路径造成不同的环路面积的情况下,截然不同的EMI电磁干扰强度。我们不仅仅验证信号完整性布线准则的最小环路面积要求,也可以用LOTO示波器+E01电磁兼容扩展检测模块来直接测试我们已有的电路板的电磁兼容EMC问题。

EMC信号完整性落地实测1---走出玄学的更多相关文章

  1. PCB设计与信号完整性

    之前在设计板卡时,只是听过相关的概念,但是未真正去研究关于SI相关的知识.将之前看过的一些资料整理如下: (1)信号完整性分析 与SI有关的因素:反射,串扰,辐射.反射是由于传输路径上的阻抗不匹配导致 ...

  2. PCB板信号完整性分析的操作步骤及设置方法

    AD16的主要功能是画电路原理图和根据电路原理图设计PCB板.为了使设计的电路.画完的电路原理图,从电路原理上不存在错误,从电路逻辑上不存在混乱,AD16专门开发了电路原理图的仿真程序.这样可以把设计 ...

  3. 异数OS-织梦师-PBFT(六) 走出区块链,加速破解PBFT

    . 异数OS-织梦师-PBFT(六) 走出区块链,加速破解PBFT 拜占庭 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区Q ...

  4. ofo走出校园观察:市场定位导致产品错位?

    Ofo和摩拜单车虽然同样都是做单车共享,但实际上两者在最初的市场定位是有明显的差异的,因此提供的产品方案也存在巨大的差异. 市场定位不同,导致产品方案的巨大差异 摩拜单车一开始就定位于开放市场,充分的 ...

  5. 为什么DIY报价----走出软件作坊:三五个人十来条枪 如何成为开发正规军(十二)[转]

    前段时间,写了一个开发.实施.服务费用计算三部曲. 水清则无鱼--走出软件作坊:三五个人十来条枪 如何成为开发正规军(八) 实施费用也能DIY--走出软件作坊:三五个人十来条枪 如何成为开发正规军(九 ...

  6. 将服务费用DIY到底----走出软件作坊:三五个人十来条枪 如何成为开发正规军(十)[转]

    前一段时间,讲了一系列开发经理.实施经理.服务经理的工具箱:开发经理的工具箱---走出软件作坊:三五个人十来条枪 如何成为开发正规军(三) ,实施经理的工具箱--走出软件作坊:三五个人十来条枪 如何成 ...

  7. 走出测试,走向CEO

    飞测说:大家好,我们又见面了,我是黑夜小怪.不巧,今晚加班回来路上,湿身了,淋了个落汤鸡,不过明天也许可以看海了,也就呵呵了,原本想回来后聊些技术的,现在突然想先聊聊我的一些想法,仅供交流. 走出测试 ...

  8. Sql Server查询性能优化之走出索引的误区

    据了解绝大多数开发人员对于索引的理解都是一知半解,局限于大多数日常工作没有机会.也什么没有必要去关心.了解索引,实在哪天某个查询太慢了找到查询条件建个索引就ok,哪天又有个查询慢了,再建立个索引就是, ...

  9. 走出MFC子类化的迷宫

    走出MFC子类化的迷宫 KEY WORDS:子类化 SUBCLASSWINDOW  MFC消息机制 许多Windows程序员都是跳过SDK直接进行RAD开发工具[或VC,我想VC应不属于RAD]的学习 ...

随机推荐

  1. Arch Linux 安装 Anbox

    镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 Anbox 介绍 Anbox 是一个可以在 GNU/Linux 发行版上运行 Android App 的容器,是一个开源兼容层. 其工作原理是在 ...

  2. 4月2日 python学习总结

    昨天内容回顾: 1.迭代器 可迭代对象: 只要内置有__iter__方法的都是可迭代的对象 既有__iter__,又有__next__方法 调用__iter__方法==>得到内置的迭代器对象 调 ...

  3. RabbitMQ Go客户端教程4——路由

    本文翻译自RabbitMQ官网的Go语言客户端系列教程,本文首发于我的个人博客:liwenzhou.com,教程共分为六篇,本文是第四篇--路由. 这些教程涵盖了使用RabbitMQ创建消息传递应用程 ...

  4. w3af漏扫的基本使用

    一.安装 apt安装 apt-get update apt-get install -y w3af 出现无法定位软件包 源码安装 sudo apt-get install git sudo apt-g ...

  5. 钓鱼+DNS欺骗学习笔记

    钓鱼+DNS欺骗学习笔记 0x00 写在前面 原文链接: http://www.cnblogs.com/hkleak/p/5186523.html 感谢大佬无私教学 0x01 步骤如下 第一步:布置钓 ...

  6. 使用C#语言,如何实现EPLAN二次开发 Api插件及菜单展示

    上期我们谈谈了谈EPLAN电气制图二次开发,制图软件EPLAN的安装和破解,今天我们来说说使用C#语言,如何实现Api插件及菜单,今天它来了!!! 关于项目环境的搭建请参考:https://blog. ...

  7. windows server 2008r2 在vmware里自动关机

    虚拟机没有激活所以导致自动关机,试试激活它.<wiz_tmp_tag id="wiz-table-range-border" contenteditable="fa ...

  8. Go 语言 切片的使用(增删改查)

    Go 语言 切片的使用(增删改查) 引言Golang 的数组是固定长度,可以容纳相同数据类型的元素的集合.但是当长度固定了,在使用的时候肯定是会带来一些限制,比如说:申请的长度太大会浪费内存,太小又不 ...

  9. Minikube使用文档

    最近在参与社区flink-operator的开发,开发的过程中经常使用到minikube来本地验证这篇文章记录下相关使用 安装 https://minikube.sigs.k8s.io/docs/st ...

  10. Spring cloud config 客户端连接RabbitMQ 报 socket closed

    java.net.SocketException: socket closed at java.net.SocketInputStream.socketRead0(Native Method)     ...