輸入失調(diào)電壓的開環(huán)測試
輸入失調(diào)電壓(VIO)是電壓比較器(以下簡稱比較器)一個重要的電性能參數(shù),GB/T 6798-1996中,將其定義為“使輸出電壓為規(guī)定值時,兩輸入端間所加的直流補償電壓”。傳統(tǒng)測試設(shè)備大都采用“被測器件(DUT,Device Under Test)-輔助運放”的測試模式,測試原理圖見圖1。
在輔助運放A的作用下,整個系統(tǒng)構(gòu)成穩(wěn)定的閉環(huán)網(wǎng)絡(luò),從而使VD=0,則
VC = -VS1·R1/R2
這樣,調(diào)節(jié)外加電源VS1即可控制DUT的輸出。當VC等于規(guī)定電壓時,
VIO = VA - VB
顯然< 又VB=0
通過測量輔助運放A的輸出電壓VE,便可換算出VIO。
在上述的閉環(huán)回路中,DUT工作狀態(tài)與普通運算放大器無異,這種測試的好處是可以通過外加電源VS1,方便地將DUT的輸出鉗位在規(guī)定值,同時由于VIO多為毫伏級,而將VIO放大至伏特級進行測試,對測試設(shè)備的要求不高,但受干擾信號影響較大。
美國Credence公司研制的IC測試設(shè)備ASL-1000,配置為DVI_300二塊,ACS、TMU、DOAL、MUX各一塊,而比較器與運算放大器在輸出特性上的差異以及運放測試回路DOAL(Dual Op Amp Loop)的電路特點,決定了比較器在ASL-1000上的測試,不能象測試運放那樣,利用DOAL形成一個閉環(huán)網(wǎng)絡(luò),來實現(xiàn)DUT的輸出嵌位。所以,用兩塊Force和Measure源dvi_9、dvi_11,輔之以doal_8的部分資源,構(gòu)成了VIO的開環(huán)測試電路,圖2為LM311(單比較器)VIO的測試原理圖。
與閉環(huán)網(wǎng)絡(luò)不同,這樣的開環(huán)測試電路無法將DUT的輸出電壓Vout鉗位于任意的規(guī)定值,因此采取了逐次逼近測試法,dvi_9_channel_0和dvi_11_channel_0被用做給DUT提供工作電源,前者同時給上拉電阻R1供電,顯然如果不提供R1,DUT的Vout不可能逼近規(guī)定的1.4V。dvi_11_channel_1對DUT同向端施加電壓,初始值為12mV,由于反向端接地,正常情況下,在DUT輸出端測量Vout的dvi_9_channel_1測值應(yīng)大于1.4V,然后按一定的步進減小同向端電壓,一旦Vout從大于1.4V躍變到小于或等于1.4V,即Vout無限接近于1.4V時,便可認定此時施加在同向端的電壓為目標測值VIO。極端情況下,Vout的初始測值就不大于1.4V或始終大于1.4V,則可置VIO=999.9999mV,判定該芯片“損壞”。
以下是在ASL-1000上自行開發(fā)的LM311的VIO測試程序Vio_2.cpp。
#include "asl.h"
#pragma warning (disable:4244)
#include "Vio_2.h"
void Vio_2_user_init(test_function&func)
{
Vio_2_params *ours;
ours=(Vio_2_params*)func.params;
}
void Vio_2(test_function&func)
{
Vio_2_params *ours;
ours=(Vio_2_params*)func.params;
float measured_V,Vadj,V,Vio;
int i;
board_hardware_init();
oal_8->open_relay(HV_BUF_CONN);
oal_8->open_relay(LOAD_REF_GND);
oal_8->close_relay(CONNECT_LOADS);
oal_8->close_relay(LOAD_REF_EXT);
oal_8->close_relay(LOAD_600);
dvi_9->set_current(DVI_CHANNEL_0,0.2);
dvi_11->set_current(DVI_CHANNEL_0,0.2);
dvi_9->set_voltage(DVI_CHANNEL_0,15); //VCC
dvi_11->set_voltage(DVI_CHANNEL_0, -15); //GND
delay(1);
oal_8->close_relay(DUT_OUT_OUT);
dvi_9->set_voltage_range(DVI_CHANNEL_1,POSITIVE_V_OUT,VOLT_20_RANGE, FAST_VOLTAGE_MODE); //set measure range
dvi_9->set_current(DVI_CHANNEL_1,1.0e-6);
dvi_9->set_meas_mode(DVI_CHANNEL_1,DVI_MEASURE_VOLTAGE);
func.dlog->power=POWER_MILLI;
Vadj=0.0;
V=0.0120;
for(i=0; i<40; i++)
{
Vadj=Vadj/3-3.0e-4;
dvi_11->set_voltage(DVI_CHANNEL_1,V);
dvi_11->set_current(DVI_CHANNEL_1,1.0e-3);
delay(1);
measured_V=dvi_9->measure();
if (measured_V>1.4000) V=V+Vadj;
else i=40;
}
if ((Vio==0.0120)||(measured_V>1.4000)) Vio=0.9999999;
else Vio=V;
do_dlog(func,0,Vio,ours->fail_bin,"");
board_hardware_init();
}
上述電壓比較器VIO的開環(huán)測試,實現(xiàn)了由間接測試向直接測試的轉(zhuǎn)化,適當減小步進(測試時間延長)可提高測試的分辨率,但卻將ASL-1000配置中所有的Force和Measure資源全部用完,因而在測試雙比較器和四比較器時,將器件所有輸入和輸出端接至mux_20,通過ASL-1000的內(nèi)部繼電器矩陣切換,完成了各通道的串行測試。