何江科,罗友哲,齐增亮,李 洋
(陕西省电子信息产品监督检验院 陕西 西安 710004)
随着半导体集成器件产量日益增长,国内测试行业利用国产的测试仪器进行半导体集成器件测试已成为主流,如何快速的开发出适合仪器和检测机构需求的测试程序已成为检测人员必须面对的问题,本文通过分析器件AD688AQ测试需求资源,并与测试仪器ST8105A可以提供的资源进行对比,得出合理的硬件搭配,并利用软件API进行仪器编程,达到了快速开发测试程序的目的[1]。
ST8105A是一款数模混合测试仪器,其包含多种类别器件测试板,硬件资源对用户开放,可对一些通用的模拟和混合器件进行交、直流参数的测试。它提供填表式的编程方式,也有开放式的C语言编程环境。
Visual C++是一款应用广泛、功能强大的Windows应用程序开发工具,它集程序的代码编辑、编译、链接、调试等于一体,给编程人员能提供了完整而又方便的开发界面。选择Visual C++,也是由于ST8105A所支持的C语言编程环境决定的[2-3]。
AD688是一款高精度电压基准,其需要测试的参数包括基准输出电压、误差、线性调整率、负载调整率及电源电流[4]。
基准输出:AD688正常工作后由±10 V Out端输出的电压;误差:其基准输出端对应的标准输出的误差;
线性调整率:指AD688的VS电源变化引起的±10 V Out变化率;
负载调整率:指AD688施加负载后,负载变化引起的±10 V Out变化率;
电源电流:指AD688正常工作时Vs电源消耗的电流。
针对其所测的参数需求,外部测试电路需求可提供±13.5 V、±15 V、±18 V的电源,可以调节0~10 mA的电流负载两路,可以提供测试电压测试通道等。
ST8105A针对不同类型的器件提供了不同的类别板,且类别板资源对外开放,用户可以根据自己的测试需求使用不同的资源。
针对AD688器件,使用电压基准类别板,需要的资源包括:提供正负电源的 PVI3、PVI2,提供负载的 PVI1、PVI0,他们完全满足AD688需求的电压和电流范围,测试通道Out1、Out2。
由于AD688精度要求高,所以利用类别板的外接资源接口,使用外部AGILENT的34401A进行电压测量。
测试仪器提供的资源完全符合器件的测试需求:ST8105A的PVI为四象限电源可提供±50 V电压和10 A电流,并同时能进行电流和电压的测量,ST8105A可供使用的PVI电压电流源有4路,且都可开放给用户,它的硬件类别板可提供外接高精度数字万用表AGILENT34401A,满足器件的电压测试高精度要求。
AD688基准输出及误差测试需求资源:正、负电源和两路输出测量通道。正负电源可由PVI3、PVI2提供,测量通道可以连接到类别板上的输出测试通道,进而通过继电器连接到外部高精度数字万用表上。两路基准输出可通过继电器切换外部万用表分时测量。
AD688线性调整率测试需求资源:可变换的正负电源和两路输出测量通道。完全与基准输出测试相同。
AD688负载调整率测试需求资源:正、负电源和两路输出负载及两路输出测量通道。正负电源可由PVI3、PVI2提供,两路输出负载分别由PVI1、PVI0提供,测量通道可以连接到类别板上的输出测试通道,进而通过继电器连接到外部高精度数字万用表上。两路基准输出可通过继电器切换外部万用表分时测量。
AD688电源测试需求资源:正、负电源及可进行正负电源电流测试的仪表。正负电源可由PVI3、PVI2提供,同时PVI3、PVI2具有电流测试功能。
根据资源需求的搭配,搭接适配器电路来连接器件与测试仪器提供的资源。通过软件和硬件的配合,完成器件的参数测试[5]。
硬件连接原理如图1所示。
图1 AD688适配器原理图Fig.1 AD688 adaptor circuit
为了测试稳定性,可以在正负电源+Vs和-Vs对地加0.1 uF的电容[6]。
其中 PVI0、PVI1、PVI2、PVI3、Out1、Out2、GND 等分别对应于测试仪器ST8105A的电压基准类别板上的资源引出端。
ST8105A编程分两部分,PGS界面和底层C语言。
PGS界面主要提供底层C语言进行硬件资源调用的相关参数,其编程相对简单,不作过多介绍。
C语言编程,可以在Visual C++编程环境下,建立相应的工程及工程文件(具体建立略)。软件编程需要对外接表进行读写,这部分的程序由仪器厂家提供API,可以直接调用。其他关于仪器硬件资源使用的API也已由厂家提供,用户可以直接调用。
主要的编程内容:
1)声明资源的使用
PVI pvi0(PVI_CH0); //提供电流负载
PVI pvi1(PVI_CH1); //提供电流负载
PVI pvi3(PVI_CH3); //提供正电源+15
PVI pvi2(PVI_CH2); //提供负电源-15
//电源在使用前需要先进行连接,然后才能使用。
2)参数编程[7]
基准输出测量(主要部分)
//从编程界面中获取用户设定的参数数据
double SampleTime=Vout->GetConditionCurSelDouble("SampleTimeS");
double delaytime=Vout->GetConditionCurSelDouble("DelayTime");
//根据硬件资源的使用情况,开关类别板上的继电器
cbit.SetCBITOn(K3); //接通地;
cbit.SetCBITOn(K33); //接通;
cbit.SetCBITOn(K34); //接通;
cbit.SetCBITOn(K30); //接通 OUT1;
cbit.SetCBITOn(K22); //接通表;
//提供芯片的供电电源
pvi3.SetModeFVMI (PVI_VRNG_20V, 15, PVI_IRNG_100MA, 20e-3, -20e-3);
pvi3.Enable();
delay_ms(2); //需要等待时间。
pvi2.SetModeFVMI (PVI_VRNG_20V, -15, PVI_IRNG_100MA, 20e-3, -20e-3);
pvi2.Enable();
delay_ms(2);
//设定外接表的量程
g_pMMSCPI->SetDCVoltage(DC_RANG_10V);
delay_ms(delaytime);
//外接表的接通和断开由继电器K22控制接通到OUT通道中
//所以当由继电器控制测量电路搭接好直接进行电压读取
g_pMMSCPI->GetMMResult(&val[0]);
delay_ms(100);
//将测试结果通过函数传递给显示界面
Vout->SetTestResult(0, 0, val[0]);
//误差计算
Err->SetTestResult(0, 0, (val[0]-10)*1000);
//在测试结束后,将系统资源进行释放
cbit.Init();
pvi3.Disable();
pvi2.Disable();
return 0;
负载调整率测试(主要部分)
负载调整率测试需要施加电流负载,需要额外使用PVI1、PVI0作为输出负载,程序如下:
pvi0.SetModeFIMV (PVI_IRNG_100MA, Iload1*1e-3,PVI_VRNG_10V, 11, -11);
pvi0.Enable();
delay_ms(2);
delay_ms(delaytime);
g_pMMSCPI->GetMMResult(&val1[0]);
pvi0.SetModeFIMV (PVI_IRNG_100MA, Iload2*1e-3,PVI_VRNG_10V, 11, -11);
pvi0.Enable();
delay_ms(2);
delay_ms(delaytime);
g_pMMSCPI->GetMMResult(&val2[0]);
电源电流测试(主要部分)
//提供芯片电流
pvi3.SetModeFVMI (PVI_VRNG_20V, 15, PVI_IRNG_100MA, 20e-3, -20e-3); pvi3.Enable();
delay_ms(2); //需要等待时间。
pvi2.SetModeFVMI (PVI_VRNG_20V, -15, PVI_IRNG_100MA, 20e-3, -20e-3);
pvi2.Enable();
delay_ms(delaytime);
//等待电源稳定后进行测量
pvi2.Measure(&val1[0],SampleTime);
pvi3.Measure(&val[0],SampleTime);
//将结果在界面中进行显示
Icc1->SetTestResult(0, 0, fabs(val[0])*1000-0.025);
Icc2->SetTestResult(0, 0, fabs(val1[0])*1000-0.025);
注意:双电源器件在测试电流时,定要注意需要在双电源同时加载后,并在稳定情况下测量,否则有可能由于测试时机不正确而导致测量结果失效。
其他参数程序基本类似,此处略。
实际测试结果如表1所示。
表1 AD688AQ测试结果Tab.1 AD688AQ test results
通过对器件AD688AQ测试需求资源及测试仪器ST8105A可以提供的资源进行分析,并搭接硬件,利用软件API进行仪器编程,完成了器件的直流参数基准输出电压、误差、线性调整率、负载调整率及电源电流等的测试,并且测试结果完全符合精度要求。
使用测试仪器资源对可测试类别器件进行编程测试,需要掌握测试仪器资源包括硬件和软件资源,掌握编程方法,了解测试原理。合理规划测试仪器可用资源,达到方便快捷实现器件测试目的。
[1]孙铣.提高测试系统测试精度的方法和技术[C]//2版.北京:华峰测控,2007.
[2]熊歆斌.Visual C++程序设计培训教程[M].北京:清华大学出版社,2002.
[3]百度百科.Microsoft Visual C++.[EB/OL].2013-07-02.http://baike.com/view/2070966.htm?fromId=100377.
[4]国家质量技术监督局.GB/T 17940-2000.半导体集成电路(第三部分)模拟集成电路[S].2000.
[5]RON Patton.软件测试[M].2版.张小松,王钰,曹跃,译.北京:机械工业出版社,2006.
[6]刘建清,陈培军,李凤伟,等.从零开始学习模拟电子技术[M].北京:国防工业出版社,2007.
[7]Deitel H M,Deitel P J.C程序设计教程 [M].2版.薛万鹏,译.北京:机械工业出版社,2000.