企业网站建设现状/合肥网站优化推广方案
Codec音频芯片是非常适合学习mix-signal测试原理的产品,本文尝试基于该芯片探讨如何开发ATE测试程序。
芯片体系结构的研究
下图是codec芯片的基本框图,由下图可以看到音频输入输出口,ADC/DAC的数字接口,电源等。因为这是一个商业芯片,没有DFT feature将delta-sigma ADC/DAC的内部sub-module隔离引出内部信号,所以只能将delta-sigma ADC/DAC作为gray box测试。

需要注意的是tester的时钟结构。由上图可以看到Tester需要提供analog clock给AWG/DGT,digital clock控制pattern frequency。如果tester的analog clock和digital clock是一个source,并且pattern frequency不能任意设置(比如没有fracPLL),那么mix-signal要求的coherence sampling就很难满足。
另外一个需要考虑的是DPS是否支持PSRR测试,PSRR需要tester在DPS直流供电中加入小的sine波。如果DPS没有这个功能而需要用vbump的机制,就需要具体了解vbump插入的间隔,考虑插入的sine波的精度和frequency问题。
测试plan的规划
这种芯片的datasheet一般就是最好的测试plan,需要具体看如何测试每一个指标。
SPI program interface
所以的配置都是通过SPI接口实现的。测试程序需要支持在线编程功能,比如使用V93K的D2S feature,可以用code生成SPI配置pattern。优点是在debug的时候,可以方便的更改SPI reg设置值。
ADC/DAC的动态特性测试
主要是SNR,THD和SFDR。
以ADC测试为例,详细介绍设置过程。
AWG的Fs=500K,N=512, M=1 (波形文件一个sine波有512个sample points),输出波形的frequency Ft = 500/512 = 0.9765625Khz。输出的voltage范围需要按照db要求,比如DUT内部的gain设为6db,那么一般AWG的信号需要给-6db,保证ADC得到0db的full scale信号。当然如果是为了测试ADC的小信号性能,需要根据ADC的lsb和小信号的要求设置AWG以及DUT内部gain。
AWG给出的sine波经过DUT内部LNA放大,delta-sigma ADC采样(过采样+decima filter)后,需要用I2S总线读出(时序图如下). 对于Ft= 0.9765625Khz,为了保证可以采样到奇数个完整周期,pattern frequency (MCLK的frequency)=11.63636364Mhz,Fs = 45.45454545Khz,如果采样N=512则可以采M=11个完整波形。
N必须是2的幂次,保证FFT可以使用;M必须和N互质,保证coherence sampling。

M是奇数的目的如下图所示,可以保证在每一个采样点的相位不同,叠加到一个周期就会有更多采样点的信息。 如果M是偶数,有部分采样点的相位一样,叠加后的有效采样点少,noise等因素影响就会大。

按照上面的计算设置AWG和pattern period,执行pattern并捕获ADC的数字输出,转换数值code成模拟电压(根据lsb电压转换)如图所示:

对输出电压波形进行FFT计算SNR/SFDR/THD。对于语音信号一般需要使用A-weighter滤波器模拟人耳的频谱特性。
A-weighter滤波器的幅值/频率函数如下,可以看到对于某个频段的语音信号可以放大,对于其他频段会衰减。


最终FFT得到的频域spectrum如下图,底噪维持在-80db以下。

注意因为MCLK是使用普通PS1600 channel,clock的jitter本身会影响SNR的测量。下图简单示意了不同clock jitter对于SNR的影响。因此如果DUT SNR参数很高,需要考虑使用pure clock等高精度clock source。

ADC/DAC的channel Separation测试
就是cross-talk类似的测试。在左声道施加一个激励sine信号Vin,右声道无激励信号,然后捕获右声道的输出进行FFT分析,右声道在激励sine频谱上的幅值Vout就是cross-talk信号。理论上Vin>>Vout,否则就会串声。
PSRR的测试
在power上混入100mV的sine信号,保持ADC/DAC active但没有激励信号,测试idle情况下各个输出的频谱在sine信号频率下的幅值Vout。
如果Vout比较大,说明噪音容易从power引入,造成电流声等。
ADC/DAC low-pass filter的测试
delta-sigma ADC/DAC都是使用了over-sampling(64Fs,128Fs或者256Fs)的方式提高SNR的,在最后一级都有一个low-pass filter将0.5*Fs以外的信号滤掉。

测试方式很简单:
1) single-tone sweep
每次输入一个频率的sine波形,然后FFT后看输出该频率的幅值。当输入sine波频率大于0.5Fs之后,需要在0.5*Fs之内看alias signal的频谱。
理想中应该看到当Ft< 0.5Fs时,输出幅值基本和输入相同;当Ft>0.5Fs时,基本没有输出信号;

2) multi-tone的方式
需要选择一组频率点,然后生成multi-tone的信号(各个tone的幅值相同)。输出FFT计算之后,看各个频点的幅值计算filter的频谱特性。
优点是测试时间少,缺点是各个tone的输入幅值低(为了保证叠加之后的信号幅值在ADC/DAC的full scale范围之内,必须限制各个tone的幅值),而且需要考虑Ft>0.5Fs信号的alias信号,不能和已有tone冲突。
测试filter的时候,对于各个频率信号,一般无法保证Ft= M*(Fs/N)其中M是整数。因此需要使用Tabei & Ueda method去处理M非整数的情况。Advantest TDC也给出了很好的例程可以参考使用。

