这次是由我亲自进行了四层板高速CAN通信电路的实测,过程中我遭遇过信号反射导致通信失败的情况。
电源去耦电容摆放不是随便放
好多人觉得电容数量越多便越好,实则决然并非是此种情况。我那块电路板起初于芯片每一个电源引脚旁边都放置了0.1μF电容,然而最终高频噪声反倒愈发严重了。由于电容距离引脚超出3mm,导致引线电感直接将电容效果给抵消掉了。
操作步骤:
1. 开启Altium Designer软件,选定电源网络,用右键点击操作,将「Net Class」设置成POWER。
2. 把0.1μF的电容,紧紧地靠近芯片电源引脚放置,其走线的宽度,最少要有15mil,电容的接地端,要通过打过孔的方式,直接连接到地平面,且过孔到电容焊盘的距离,不能超过1mm。
3. 在电源的入口之处,将10μF的电容与0.1μF的电容进行并联,这两者之间的间距要控制在5mm以内,以此来形成宽频去耦。
【新手避坑】头一回测试时发觉电源纹波竟高达200mV,经排查晓得是过孔跟电容接地焊盘之间布设了细线。正确的做法是电容接地的一端直接经由铜皮衔接过孔,中间无须存在任何走线,不然寄生电感会导致去耦失效。提议运用热风枪施焊电容,以防虚焊导致等效串联电阻扩充。
关键参数最优推荐值:信号线阻抗匹配50Ω
我踏过一个更深的陷阱:差分进行对等长度的走线然而阻抗却没有加以控制,最终100M时钟信号的眼图彻底闭合。建议把单端信号线的阻抗设定成50Ω,差分对设置为100Ω,如此能够最大程度地削减反射。
具体的操作是,要在叠层结构当中对介质厚度进行设定,对于四层板典型的方案而言,是顶层到参考层的间距为0.2mm,还要选用FR4板材,其介电常数是4.3,线宽为10mil,如此就能实现50Ω。要知道这个参数可不是随意去填的,得先经过计算之后再布线,不然的话改变线宽就等同于重新绘制板子了。
以下是两种方案的对比情况,方案A行进于其表层是以微带线 的情况,方案B行进而处在内层为带状线 的情况。表层微带线所产生的延迟相对而言要更小一些 的幅度,从而适宜于高频时钟对应的场景;而对内层带状线来讲抗干扰 的能力更为强大一些 的程度,所以适合敏感模拟信号相应的情境。所描述 的那块CAN电路呈现的具体情况是 在表层走差分对 的方式,在内层走电源反馈线 的方式,最终所收获 的效果显著优于全体都走表层 的情况。
新手要避坑,使用阻抗计算软件,像那个Polar SI9000,这个时候得输入真实叠层厚度,千万别用默认值。我可是吃过亏的,你知道吗? 厂家最后实际压合的厚度比设计的厚了0.05mm,结果阻抗直接就偏到60Ω了。那正确的做法是什么呢? 是在下订单之前赶紧去跟PCB厂家确认那个叠层参数,然后还要让厂家给推出的你那个介质厚度与那个铜厚的那个公差,接着再反向去计算线宽。
完整报错:信号反射导致通信丢包
曾有一回进行RS485调试,在200k波特率状态下,每隔几秒便会丢失一包数据。使用示波器抓取波形时发现,信号过冲幅度达到40%,下冲幅度接近30%,显然属于阻抗不匹配的情况。
解决流程:
1. 在接收端,并联120Ω终端电阻,该电阻紧密贴近芯片接收引脚,有关走线,其长度不超过5mm。
2. 在发送端,将22Ω电阻进行串联,其位置放置在信号输出脚焊盘的旁边,如此这种能够吸收一部分反射能量。
3. 重新进行走线拓扑方面的调整,把原本的星形连接方式改换为菊花链,把总线主干线的长度把控在30cm内,分支线长度不超出5cm每个部位都要精准操作到位。
4. 进行相关仪器操作时,针对测量波形这一行为,需使用示波器探头连接于接收端,并且要使过冲降低至5%以下,此情况才被称之为合格。个人在详细调试完成之后,丢包率从原先的15%下降到了0.1%。
新手上路需避开的坑,电阻焊接上去之后务必测量实际的阻值,贴片电阻误差有时候高达百分之五。正确的做法是,使用万用表测量两端电压,再除以通过的电流,从而确认真实的阻值。另外串联电阻不要使用碳膜电阻,因为在高频情况下寄生电感大,建议使用 0603 封装的厚膜电阻。
上述方法对于单端信号线而言是有效的,如果你的PCB层数仅仅只有两层,并且不存在完整的参考平面,那么阻抗控制将会大打折扣。针对这种情况,需优先去考虑把线宽增大至20mil以上,或者采用屏蔽双绞线来替换PCB走线,虽说成本会稍微高一些,不过稳定性提升得十分显著。










