某用户用示波器测试晶振产生的25MHz的时钟信号频率。晶振本身标称的精度为±5ppm(1ppm等于百万分之一),用户用示波器实际测试到的信号频率为25.996MHz左右,而且无论是当前值(Current)还是平均值(Mean)都非常不稳定。用户希望能够准确测量信号频率。
问题分析
首先检查了一下用户使用的探头,虽然使用的是无源探头,但用户采用了短的连接地线,而且从波形形状来看非常稳定,测量的误差应该不是由于探测方法造成的。用户晶振的标称指标为±5ppm,因此对于25MHz时钟来说,其频率偏差应该不超过5ppm*25MHz=125Hz。而测试结果为24.996MHz,相对于25MHz偏差了4KHz,明显偏差较大。
首先来计算一下该示波器是否能够达到用户的期望精度。一般的示波器都没有类似频率计的直接频率测量功能(一些特殊的示波器除外),所以是通过测量信号的周期来反推信号的频率的,因此周期测量的精度会决定了示波器的频率测量精度。查了一下用户所使用的S系列示波器的产品手册,其时间测量精度公式计算方法如下:
其中:Noise为当前量程下示波器底噪的RMS值,在不连接信号时测量噪声的RMS值约为12mV;SlewRate为被测信号的斜率,打开示波器的SlewRate测量功能测得被测信号斜率为1.6V/ns。另外,IntrinsicJitter为示波器的固有抖动,这里取100fs;TimeScale Accuracy为示波器参考时基的精度,其初始精度为12ppb(1ppb等于10亿分之一),每年老化率为75ppb,假设每年校准一次,其时基精度可以近似取100ppb,及0.1ppm;Reading在这里为被测信号的周期,即40ns。
在以上的公式里,对于40ns信号周期的测量,如果做单次测量,影响最大的是(Noise/SlewRate),这部分体现了噪声对于时间测量误差的影响,其会带来约(12mv/(1.6v/ns))=7.5ps的测量误差,折算到40ns的周期相当于±187.5ppm (rms) ,对于25MHz的信号相当于±5kHz(rms)左右,而其峰峰值会更大,远远超过用户对于<±5ppm的测量需求。因此,在这个测量需求里,如果用户只是做单个周期的测量,由于噪声和示波器固有抖动的影响,是没法满足用户的测量需求的。
为了改善这个问题,由于被测的时钟信号是周期性的,可以通过平均来减小由于噪声和抖动造成的影响。如果平均的次数足够多,噪声和抖动造成的影响至少可以下降2~3个数量级(在上面的公式里我们也可以看到如果做256次平均,其噪声和抖动造成的测量误差已经可以小了1个数量级以上),此时起主要作用的只是时基精度造成的影响。对于用户使用的S系列示波器来说,其时基精度小于0.1ppm,因此,只要有足够多的平均次数,这台示波器对于当前频率的测量精度是有可能满足用户需求的。
但是,正常情况下示波器抓一次波形,只是取屏幕上一个周期做测量,测量的效率比较低,因此需要等待很长时间才能得到稳定的结果。为了提高测量和平均的速度,我们在示波器里做了以下两个设置。
1、增加存储器深度,以使得单次波形里包含更多的信号周期。在这里我们在示波器的Acquisition设置下把采样率设置为20G/s,内存深度设置为1M点。
2、在示波器的Measure设置菜单下设置示波器波形中的所有周期都做测量。
做完以上设置后,再重新开始示波器测量。我们看到,在短短2~3秒钟的时间内,频率测量的平均值(Mean)就稳定在25.000049MHz,相当于约2ppm左右,完全满足用户的测量需求。而如果观察测量的计数(Count),发现此时已经完成了1万多个周期的测量,因此频率的测量结果可以很快稳定下来。
在这个案例中,用户希望用示波器对时钟信号的频率做精确测量。由于大部分示波器都没有频率计的硬件计数功能(个别种类的示波器带内置频率计,如Keysight公司的6000/7000/4000X/6000X系列),所以都是通过周期的测量来反算频率的,因此周期测量的误差会造成频率测量的误差。而对于周期测量来说,由于宽带示波器的噪声普遍较大,且时钟信号的斜率可能没有那么陡,所以如果不做平均,由于噪声造成的时间测量误差会比较大。如果可以做足够次数的平均,则影响测量精度的主要是示波器自身的时基精度。
对于S系列示波器来说,其自身时基精度误差在0.1ppm之内,可以满足测量需求。所以我们通过增加示波器的内存深度以及设置示波器对内存的所有周期同时做测量,可以大大加快平均的速度,从而很快就可以得到稳定的频率测量结果。
但是需要注意的是,如果示波器自身的时基精度较差,比如精度到±10ppm左右,仅仅采用上述方法就不够了。这时还需要通过外部参考时钟输入端给示波器提供一个更加精准的参考时基输入(比如用铷钟提供更精确的10MHz参考时基),并设置示波器使用外部参考时基(如下图所示),才能进行更准确的时钟频率测试。