adc 动态参数和静态参数测试方案
基础信息
ADC的测试分为静态测试和动态测试, 静态测试:INL,DNL,offset ,Gain err, missCode,最大最小误差 动态特性: 信噪比(SNR)、总谐波失真(THD)、有效位数(ENOB) 和 无杂散动态范围(SFDR),SINAD(信纳比)
静态参数有输入三角波或者是sin波来测试,三角波是比较容易计算,笔者也是三角波输入后进行计算的。
动态参数测试,则是通过输入特定频率的sin波来测试,注意输入的sin波略小于ADC的最大最小值,防止失真。
静态参数
DNL参数
这里的实际码宽就是在环境中测试到特定编码出现的数量,理想码宽就是理论上出现的概率,如果信号源输出的是三角波,那么每个码出现的概率是相同的,直接填写即可。如果是正弦波,则需要计算正弦波的概率密度函数(Probability Density Function, PDF),通过马密度来计算出浴盆曲线。从而比较。
这是积分计算的方式,叠加计算即可
动态参数
动态参数需要对信号执行FFT,之后再计算
ENOB = \frac{SINAD−1.76}{6.02}
SFDR:基波幅值与最大杂散分量的比值(dBc)。
硬件方案
笔者主要参考了TI PSIEVM 板子的方案,TI的这个板子提供了一个高精度2kHZ的正弦波信号源。整体框架如下图: 左边有两个,一个FPGA的模块,来读取ADC的数据,一个ADC的demo板 右边就是信号源,既可以输出差分的信号,也可以输出单端的信号。
在此先讨论信号源的部分,信号源通过音频的芯片PCM5142 输出信号,过带通滤波器滤除杂波,通过P2输出 板子上是通过IIC来控制dac 芯片的,但这个控制方式需要TI专门的一个调试软件,笔者没有申请到,所以就换成了纯硬件的方式来输出。
计算软件
笔者使用的是:WaveVision 5 这个软件来分析的,后续会根据上面的公式再计算相关的参数。
测试的注意事项
- 信号采集的速度要远大于信号,如:信号是2K的正弦波,采样速度最好能高于200K,保证有足够的细节
- 从机的电源需要特别注意,数字信号和模拟信号之间的干扰。数字和模拟信号尽量离远一点。
- 输入的信号可以尝试一些质数,从而有足够的信号偏移。