问题现象
音频设备,主板输出有哒哒的噪声,已经排除掉电源、芯片的原因。
问题分析
经过排查分析,这个问题出在CODEC芯片的输入主时钟MCLK上面,初步判定为输入主时钟的信号完整性问题。
造成这个问题的主要原因:原来的设计中,时钟信号做了一个兼容设计,如下图所示,AHC、CY2305S_CLK3是主时钟信号,CODEC时钟输入可以通过R54、R53来选择。目前R53是焊接在板子上的、R54不焊,AHC接的是一个时钟晶振,也没有焊接。但是在PCB的走线上,从CY2305_CLK3到MCLK,中间产生了一个分叉,从分叉到R54的这一段是悬空的,会造成信号的全反射,影响了时钟信号的完整。
什么是信号完整性?
我们在用示波器测量PCB板上信号时,经常会在信号的波形上发现一些奇怪的现象:比如信号跳变后会产生很大的尖峰毛刺,可能尖峰后面还会有上下起伏波动。有时候信号的边沿会出现一个平台,有点像人的肩膀。还有时你可能会遇到信号的边沿不是平滑上升的,会出现一个回沟,上升到中途突然跌落下来然后再继续上升。这些现象就是信号完整性问题的典型表现。
信号完整性一词没有一个唯一的规范定义,通常是指高速PCB中由于信号、互连结构、电源系统等因素相互作用,最终使信号产生扭曲畸变的一种现象。这时可以说信号在传输过程中被破坏了,变得不完整。
信号波形畸变,可能造成接收端无法正确接收信号,从而导致电路无法正常工作。试想一下,接受信号的时候,需要有一个边沿来采样判断是0还是1,但这是如果由于信号的扭曲,本来是高平波形确跌落到了高电平门限阈值一下,就可能会被误判为0,出现接收错误。
为什么信号会反射?
信号频率高到一定程度时,信号的反射几乎无处不在。与电流相似的,可以用水流做一个比喻。可以把水位的高度看做电压,水流的速度看做信号频率。假设水道的宽度为阻抗,河道越宽阻抗越小(和电线一样,线宽阻抗越小)。
一条小河上,突然水流进入了小沟,水道变窄,阻抗变大。这时如果水流速很快也即信号频率很高,就会溅起水花,这就是反射。此时小沟端的水位也有抬高,说明这就产生了正反射,电压变高!然后如果突然小河流入了大江,江明显变宽啦,阻抗小,水位低,说明产生了负反射,叠加后电压就变低了。
信号的反射与线路的阻抗突变有着直接的关系。假设信号传输过程中经过两个阻抗不同的区域,区域1为Z1,区域2为Z2,那么从Z1到Z2的反射系数为:
在理想情况下,阻抗是连续的,Z2等于Z1,反射系数为0;当Z2<Z1,反射系数为负产生负反射;当Z2>Z1,反射系数为正产生正反射,信号来回反射便形成了震荡。如果线路悬空,相当于Z2无穷大,反射系数近似于1,为全反射。
解决方案
工程实践中解决信号反射问题的有效方法就是根据传输线的特性阻抗在其发送端或接收端进行阻抗匹配,从而使源反射系数或负载反射系数尽量接近于零。传输线的端接通常采用两种策略:
1)终端端接,主要是在靠近负载端的位置加上拉或下拉一个电阻以实现终端的阻抗匹配。
2)源端端接,通过在靠近源端的位置串行插入一个电阻实现源端的匹配。
所以目前临时的解决办法是去除兼容设计,把悬空的电阻补焊上一个阻值较低的电阻(理想情况下是50欧,但考虑到功耗,实际可以在100-300欧之间选择一个值),AHC的信号线通过0R电阻短接到地,采用的是终端端接的方法。
最好去除兼容设计。或者在PCB走线时,分叉的长度要尽可能小。
验证
以上方案,已经在10块异常的板子上验证通过,测试超过48小时,功能一直正常。