一、时钟抖动
时钟抖动说白了就是时钟信号的跳变沿(比如从低电平跳到高电平的那个瞬间),在每一个周期里的位置都有点不准,相邻周期之间会有小偏差。
我们用的所有ADC,都是靠这个时钟跳变沿来决定“什么时候去采集信号”的。理论上呢,两次采样之间的时间间隔得是死死固定的——就像用秒表计时,每次按的间隔都得一模一样才行。
可一旦因为时钟抖动,采样的那个“时间点”忽前忽后跑偏了,采样频率就不稳定了。这就好比你用秒表计时,有时候隔1秒按一次,有时候隔0.9秒、有时候隔1.1秒,最后测出来的结果肯定不准,ADC转换出来的数据自然也就跟着出错了。
如图所示,时钟抖动具有随机性,且符合高斯分布(正态分布)。
正因为时钟抖动是随机的,它会抬高ADC的噪声基底,同时增加整个信号链的总热噪声。
时钟对ADC噪声的影响,取决于两个因素:输入信号的压摆率(信号电压变化的速率),以及时钟源的抖动量。
我们可以通过公式计算信噪比(SNR)的上限:
SNR上限 = -20 × log₁₀(2π × f_in × t_jitter)
其中,f_in是输入信号的频率,t_jitter是时钟源规格书中标注的时钟抖动值。对于频率更高的信号,其压摆率会更大,此时时钟抖动对SNR的影响也更显著,导致SNR性能变差。
Δ-Σ ADC这类过采样转换器有一个关键优势:提高过采样率可以改善理想SNR。SNR的改善幅度可通过公式计算:
SNR改善量 = 10 × log₁₀(过采样率)
下方的两张图表展示了ADC的SNR性能如何随输入信号频率及时钟抖动变化。利用上面的SNR计算公式,分别代入500ps、5ns、50ns、500ns这四种时钟抖动值,即可生成每张图表中的四条曲线。两张图表均体现了同一个规律:输入信号频率越高,或时钟抖动量越大,最终的SNR就越低。
简单说就是:
过采样率调到128倍的ADC,它的四条信噪比(SNR)性能曲线,都能直接提升21dB——这是个很明显的性能改善。
如果是输入信号频率低、数据传输速度慢的场景,时钟抖动带来的影响基本可以忽略不计;但要是碰到对信噪比要求特别高的应用,那就得舍得花钱、接受更高功耗,用更好的时钟方案,把抖动压到最小才行。
另外还有个小窍门:自带时钟分频器的ADC,对时钟抖动的容忍度会更高,就算抖动大一点,也不会让它的噪声性能掉得太厉害。
二、时钟互调
时钟互调,是除了时钟抖动之外,另一种会拖累ADC性能的“坑”。
很多电子系统里,不是只靠一个时钟干活的——得有好几种不同频率的时钟,给ADC之外的其他器件用,比如别的数据转换器、芯片里的微处理器这些。
要是这些时钟之间不同步(简单说就是它们的频率没有固定的比例关系,比如一个是100MHz,一个是233MHz,凑不成整数倍),还偏偏因为电路设计的问题,信号互相干扰了,那在最终的信号频谱上,就会冒出一堆原本没有的“杂波”,这些杂波就叫互调产物。
举个例子就懂了:
假设有两个时钟,频率分别是F1和F2。
- 用这两个频率直接相加(F1+F2)或者相减(|F1-F2|),出来的杂波就是二阶互调产物;
- 要是再把F1、F2的谐波也算上(谐波就是频率是原时钟整数倍的信号,比如2倍F1、3倍F2),用这些谐波再做加减组合(比如2F1-F2、F1+2F2),出来的就是三阶互调产物,甚至还能搞出更高阶的杂波。
这些额外的杂波都会混进ADC采集的信号里,让信号质量变差。
再给你说得更直白点:
就算这些杂波(互调产物)一开始不在咱们系统要关注的信号带宽里,也可能因为混叠这个现象——简单说就是采样的时候频率被“折叠”了——跑到ADC要处理的信号带宽里来捣乱。
一进来就坏事了,会让信号的信噪比变差、失真变严重,把ADC的交流性能指标都搞砸。
所以在宽带应用的场景里,大家一般都用一个主时钟源来生成所有需要的时钟频率。这样所有时钟都能保持同步,频率之间有固定的比例关系,就不会产生那些烦人的互调杂波了。
下面这个FFT(快速傅里叶变换)图,就是时钟互调捣乱的真实例子。
我们先把ADC的两个输入引脚短接,这样它采集的就是0V的差分信号——理论上频谱上应该干干净净,没啥多余的信号。
然后我们设置两个时钟:一个给处理器用,频率12MHz;一个给ADC用,频率11.996MHz,俩时钟就差4kHz。
结果采集完数据一看频谱,好家伙,出现了一堆间隔正好是4kHz的杂波。
这就说明,两个不同步时钟产生的互调产物,直接跑到ADC要处理的信号带宽里来捣乱了——明明输入的是0V,却平白无故多出这么多杂波。
三、时钟源的PCB布局最佳方案
设计电路板上时钟源的走线布局时,核心就是要保证时钟信号干净,别被乱七八糟的干扰盯上。
别看时钟信号是给数字器件用的,但它特别金贵,得像对待娇气的模拟信号一样小心伺候,具体要遵守这几条规矩:
1. 尽量让时钟的走线阻抗越小越好,别让信号在路上“磕磕绊绊”;
2. 时钟走线要离SPI这类容易产生噪声的电路远一点,避免被它们干扰;
3. 提前留出焊盘,方便后续焊上串联电阻和并联电容——这俩元件能压住信号反射、信号突然冲高的毛病。
下面这个图就是个靠谱的时钟布局例子:
时钟源和时钟缓冲器放在电路板的右上角,ADC则在左下角。
时钟缓冲器输出的信号,先经过一个串联电阻,再经过一个跳线(用来选通信号通路),最后再过一个串联电阻和并联电容,才接到ADC的时钟引脚。
整个走线又短又直,一点不绕弯。同时还特意注意,让SPI接口的信号在接到ADC之前,全程都不跟时钟走线凑在一起,避免互相干扰。
四、时钟相关问题的排查建议
如果怀疑时钟信号导致ADC性能下降,可以从以下几个方面排查:
1、检查ADC时钟输入引脚的信号质量
要是时钟信号出现严重的过冲(信号一下子冲得超过目标电平)或者振铃(信号跳变后,边缘跟着小幅度来回晃悠),你可以把串联电阻的阻值调大一点,或者把并联电容的容值加大一点,这样就能把时钟信号的跳变边沿变得平缓些。
这么操作其实就相当于给时钟输入加了个低通滤波器——能把信号里的高频杂波滤掉,同时还能保住时钟的基础频率,不影响正常工作。
另外,串联电阻还有个用处:能压住时钟信号的反射。这种反射一般是因为时钟走线太长导致的,会让时钟的跳变边沿出现不该有的“平台”或者“台阶”,用电阻就能缓解这个问题。
2、检查电源引脚的噪声
重点查这几个地方的电源引脚:ADC的数字电源脚、时钟源的电源脚,还有时钟路径上所有缓冲器的电源脚。
要是发现这些引脚的电压有明显的突然波动(也就是瞬态噪声),有两个办法能解决:
(1)把电源引脚旁边的去耦电容换个容量更大的,这样能有效降低ADC数字电源的噪声;
(2)也可以在ADC数字电源脚和时钟源/缓冲器的电源脚之间,串一个小磁珠。磁珠能进一步拦住两边的噪声互相窜来窜去,避免干扰。
3、优化接地设计
若PCB尺寸限制导致时钟电路无法远离敏感的模拟电路,可考虑采用“部分分割地平面”的方案,隔离时钟电流的回流路径。但需注意:分割后的两个地平面必须在靠近ADC的位置重新连接在一起,避免形成“悬浮地”导致更大的噪声问题。
209