-
一、待测芯片
测试项分析
REXT | OUT | ||
-100 uA | -100 uA | OVC | |
20V | QVC | ||
0.8V | IDD+0.2mA | ||
0.8V | 500V | KVS | |
15V |
-
二、板卡资源选择
1、OVC
OVC是一种高达8通道的精密测量板,为设备引脚提供电压/电流,并提供测量功能来测量电压/电流。
OVC功能类似于其他测试仪设备中的DPS(设备电源)或PMU(参数测量单元),最大输出或电压/电流为+ - 20V / +200mA。
每个OVC模块有8个通道,有2个接地连接
每个OVC有8个通道,每个通道可以在不同站点的不同设备上使用。
OVC 8通道名称规则为A - H, GND名称为AG / HG(详细说明请参考DUT Board Session)。
2、QVC
3、KVS
4、USER RELAY(TMU)
TMU板有两大功能:一是定时测量和频率测量,二是继电器控制单元。这意味着用户可以在测试器之外控制真正的打开/关闭,设计在Dut板上(p18)
-
三、原理图
tri文件中的通道分配(site1-site4)
-
四、实物图
-
五、新建工程(测试机电脑)
下面用已经建好过的工程来说明
HW_configure
pin_channel_map
(pin_channel_map.pcm文件(名字自取))
Site_define
Test_sequence
(后台程序也在更新,记得确认,测试代码复制到对应地方就行)
Options
Datalog测试界面(Datalog、Summary文件)
调试
六、工程文件夹文件说明(前面在建工程文件也陆续出现了)
可以先在.cpp文件中写好,
在创建工程文件后,将每个测试项的程序复制粘贴过去
-
七、测试程序(xxxxxx_TR6850S_4SITE_userprog.cpp)
测试前的准备(一般是将各种资源通道关闭,置零)
Site_Check
(工位检查,防止线接错了,测试机的site应与pcb板的site一一对应,这样每个site数据才会对应)
T1_OS_TEST
T2_IDD_TEST
T3_BV_TEST(条件不一样,分为两个小测试项)
T4_VREXT_IOUT_TEST
T5_IOUT_max_TEST
T6_OS_RETEST(最后再测一次OS,以免芯片被测坏)
-
八、调试中遇到的问题
(一)IOUT电流数据比较
直接测试(上电后仅延时3ms):20.0498mA
Debug调试(相当于延时几秒)
(1)debug:20.2111mA
- 程序延时8s:20.1677mA
- 程序延时18s: 20.1924mA
(二)VREXT 电压数据比较
洞洞板和pcb板在6850上测试数据不一样,差了0.01v,用万用表测量发现pcb和测试机DUT的AGND 相差0.01v,数据对不上的问题大概率在这,复测发现电压仍然有0.006v,检查排线和site2,压差依旧存在,将30欧姆精密电阻换为
1:100普通电阻测量有0.002~0.003v压差,此时电流IOUT约为6.2mA(0.0025/0.6=0.41%)
2:100并成50,测量有0.004~0.005v压差,此时电流IOUT约为12.14mA(0.0045/0.6=0.75%)
30欧姆:6.25单独用杜邦线测,压差为0.001-0.002v,再次更换排线,压差为0.002v
(三)IDD数据比较
OUT | REXT | 延时ms | 测试数据uA | 现象 | |
6850 | 20v | 悬空 | 2 | 150 | 稳定 |
2v | 2 | 161 | 150-160-170变化 | ||
12 | 167-168 | ||||
5600 | 悬空 | 7 | 170-175 | 稳定 |
(四)同一板子、排线和芯片,测试机1-3site测量偏差验证
REXT1_OS_S | -0.51855 | -0.5188 | -0.51825 |
OUT1_OS_S | -0.50911 | -0.50896 | -0.50896 |
REXT1_OS_O | -0.51855 | -0.5188 | -0.51825 |
OUT1_OS_O | -0.50911 | -0.50896 | -0.50896 |
IDD1 | 162.225 | 162.958 | 163.671 |
V_BV1 | 598.074 | 598.663 | 599.215 |
I_BV1 | 176.594 | 177.019 | 177.301 |
VREXT1 | 0.598658 | 0.598309 | 0.598678 |
IOUT1 | 20.025 | 19.9509 | 19.9188 |
IOUT_max1 | 95.7754 | 95.6864 | 95.7062 |
REXT1_OS2_O | -0.50173 | -0.50168 | -0.50107 |
OUT1_OS2_O | -0.48731 | -0.48716 | -0.48704 |
测试机资源没问题
(五)3site同测,不同板子、排线和芯片
IDD | BV | BV | VREXT | IOUT | IOUT_15V_MAX |
IDD1 | V_BV1 | I_BV1 | VREXT1 | IOUT1 | IOUT_max1 |
200 | 700 | 250 | 0.624 | 20.9 | 125 |
124 | 500 | 90 | 0.575 | 19.3 | 90 |
uA | V | uA | V | mA | mA |
157.104 | 601.278 | 176.41 | 0.60113 | 20.0061 | 93.667 |
153.293 | 600.855 | 174.314 | 0.595961 | 19.9029 | 93.5315 |
162.499 | 605.105 | 176.157 | 0.604221 | 19.9577 | 94.1845 |
九、参考程序
#include "stdafx.h"
#include "ABC0000_TR6850S_4SITE_userprog.h"
double temp[8]={0,0,0,0,0,0,0,0};
double OS_REXT1[8]={0,0,0,0,0,0,0,0};
double OS_OUT1[8]={0,0,0,0,0,0,0,0};
double OS_REXT2[8]={0,0,0,0,0,0,0,0};
double OS_OUT2[8]={0,0,0,0,0,0,0,0};
double OUT1[8]={0,0,0,0,0,0,0,0};
double OUT2[8]={0,0,0,0,0,0,0,0};
double Idd1[8]={0,0,0,0,0,0,0,0};
double Idd2[8]={0,0,0,0,0,0,0,0};
int site[8]={0,0,0,0,0,0,0,0};
int set[8]={0,0,0,0,0,0,0,0};
PG_VALUE OS;
PG_VALUE OS1;
void System_Init(void)
{
ovc.FV("REXT1",0,100e-3,ovc.V_RNG_2V,ovc.I_RNG_100MA,false,1);
qvc.FV("OUT1",0,2,200e-6,qvc.V_RNG_2V,qvc.I_RNG_200u,qvc.DUTOFF,false,0,0);
//ovc.FV("REXT2",0,100e-3,ovc.V_RNG_2V,ovc.I_RNG_100MA,false,1);
//qvc.FV("OUT2",0,2,200e-6,qvc.V_RNG_2V,qvc.I_RNG_200u,qvc.DUTOFF,false,0,0);
kvs.FV("OUT1_KVS",0,1E-3,kvs.V_RNG_1000V,kvs.I_RNG_1M5A,true,1);//share 关一个
kvs.FV("OUT1_KVS",0,1E-3,kvs.V_RNG_1000V,kvs.I_RNG_1M5A,false,1);
tmu.SetUR("ALL_K",tmu.OFF);
}
void System_Exit(void)
{
}
void Device_Init(void)
{
}
void Device_Eot(void)
{
ovc.FV("REXT1",0,100e-3,ovc.V_RNG_2V,ovc.I_RNG_100MA,false,1);
qvc.FV("OUT1",0,2,200e-6,qvc.V_RNG_2V,qvc.I_RNG_200u,qvc.DUTOFF,false,0,0);
//ovc.FV("REXT2",0,100e-3,ovc.V_RNG_2V,ovc.I_RNG_100MA,false,1);
//qvc.FV("OUT2",0,2,200e-6,qvc.V_RNG_2V,qvc.I_RNG_200u,qvc.DUTOFF,false,0,0);
kvs.FV("OUT1_KVS",0,1E-3,kvs.V_RNG_1000V,kvs.I_RNG_1M5A,true,1);//同一通道无需修改
kvs.FV("OUT1_KVS",0,1E-3,kvs.V_RNG_1000V,kvs.I_RNG_1M5A,false,1);
tmu.SetUR("ALL_K",tmu.OFF);
}
void Device_Eow(void)
{
}
void Site_Check(void)
{
double site_value[4]={1,2,3,4};
tmu.SetUR("K9",tmu.ON);
util.dlyms(2);
util.GetActiveSite(site);
for(int i=0;i<4;i++)
{
if(site[i]==1)
{
set[i]=1;
set[(i+1)%4]=0;
set[(i+2)%4]=0;
set[(i+3)%4]=0;
util.ChangeActiveSite(set);
ovc.FV("site_check",site_value[i],4,ovc.V_RNG_4V,ovc.I_RNG_10MA,true,1);
ovc.MI("site_check",2);
util.GetMeasValue("site_check",temp);
temp[i]=temp[i]*1e3;//1K,单位为MA
util.TestLog("Site_Check",temp);
ovc.FV("site_check",0,100e-6,ovc.V_RNG_4V,ovc.I_RNG_100UA,false,0);
// kvs.FV("OUT1_KVS",site_value[i],1.5E-3,kvs.V_RNG_100V,kvs.I_RNG_1M5A,true,1);//一个check就够了
// util.dlyms(2);
// kvs.MI("OUT1_KVS",3,2);
// util.GetMeasValue("OUT1_KVS",temp);
// temp[i]=temp[i]*1e3;
// util.TestLog("Site_Check2",temp);
// kvs.FV("OUT1_KVS",0,1.5E-3,kvs.V_RNG_100V,kvs.I_RNG_1M5A,false,1);
util.dlyms(1);
}
}
util.ChangeActiveSite(site);
tmu.SetUR("K9",tmu.OFF);
util.dlyms(2);
}
//********************* T1_OS_TEST *********************
//OUT、REXT各通道施加I=-100 uA
//REXT1_OS_S REXT1_OS_O OUT1_OS_S OUT1_OS_O
//REXT2_OS_S REXT2_OS_O OUT2_OS_S OUT2_OS_0
void OS_S(void)
{
//tmu.SetUR("OS_K",tmu.ON);
tmu.SetUR("K3",tmu.ON);
//tmu.SetUR("K4",tmu.ON);
tmu.SetUR("K5",tmu.ON);
//tmu.SetUR("K6",tmu.ON);
util.dlyms(2);
ovc.FI("REXT1",-100e-6,2,ovc.V_RNG_2V,ovc.I_RNG_1MA,true,1);//-100UA
ovc.MV("REXT1",2);
util.GetMeasValue("REXT1",OS_REXT1);//util.GetMeasValue(“ Pin or PinGroup ”,获取数据,存取数值的变量,需要自行定义);
util.TestLog("REXT1_OS_S",OS_REXT1);//util.TestLog(“在测试项目中的项目显示名称”,变量中的值);
ovc.FV("REXT1",0,100e-6,ovc.V_RNG_2V,ovc.I_RNG_1MA,false,0);//下电
//ovc.FI("REXT2",-100e-6,2,ovc.V_RNG_2V,ovc.I_RNG_1MA,true,1);//-100UA
//ovc.MV("REXT2",2);
//util.GetMeasValue("REXT2",OS_REXT2);//util.GetMeasValue(“ Pin or PinGroup ”,获取数据,存取数值的变量,需要自行定义);
//util.TestLog("REXT2_OS_S",OS_REXT2);//util.TestLog(“在测试项目中的项目显示名称”,变量中的值);
//ovc.FV("REXT2",0,100e-6,ovc.V_RNG_2V,ovc.I_RNG_1MA,false,0);//下电
qvc.FI("OUT1",-100e-6,2,200e-6,qvc.V_RNG_2V,qvc.I_RNG_200u,qvc.DUTON,false,0,1);
qvc.MV("OUT1",2);
util.GetMeasValue("OUT1",OS_OUT1);
util.TestLog("OUT1_OS_S",OS_OUT1);
qvc.FV("OUT1",0,2,200e-6,qvc.V_RNG_2V,qvc.I_RNG_200u,qvc.DUTOFF,false,0,0);//
//qvc.FI("OUT2",-100e-6,2,200e-6,qvc.V_RNG_2V,qvc.I_RNG_200u,qvc.DUTON,false,0,1);
//qvc.MV("OUT2",2);
//util.GetMeasValue("OUT2",OS_OUT2);
//util.TestLog("OUT2_OS_S",OS_OUT2);
//qvc.FV("OUT2",0,2,200e-6,qvc.V_RNG_2V,qvc.I_RNG_200u,qvc.DUTOFF,false,0,0);//
// ovc.FI("FLOAT",-100e-6,4,ovc.V_RNG_4V,ovc.I_RNG_1MA,true,1);
// ovc.MV("FLOAT",2);
// util.GetMeasValue("FLOAT",temp);
// util.TestLog("OS_FLOAT",temp);
// ovc.FV("FLOAT",0,100e-6,ovc.V_RNG_2V,ovc.I_RNG_1MA,false,0);
tmu.SetUR("K3",tmu.OFF);
//tmu.SetUR("K4",tmu.OFF);
tmu.SetUR("K5",tmu.OFF);
//tmu.SetUR("K6",tmu.OFF);
//qvc.FV("OUT1",0,2,200e-6,qvc.V_RNG_2V,qvc.I_RNG_200u,qvc.DUTOFF,false,0,0);
}
void OS_O(void)
{
util.TestLog("REXT1_OS_O",OS_REXT1);
util.TestLog("OUT1_OS_O",OS_OUT1);
//util.TestLog("REXT2_OS_O",OS_REXT2);
//util.TestLog("OUT2_OS_O",OS_OUT2);
}
//********************* T2_IDD_TEST *********************
// K4->K5 K6 K3(REXT)
//OUT加20V电压,其余端口悬空,测试OUT1电流,
//IDD1 IDD2
void IDD(void)
{
tmu.SetUR("K5",tmu.ON);
//tmu.SetUR("K3",tmu.ON);//(625)
util.dlyms(2);
qvc.FV("OUT1",20,25,20e-3,qvc.V_RNG_32V,qvc.I_RNG_20m,qvc.DUTON,false,0,1);//大电流上电
qvc.FV("OUT1",20,25,2e-3,qvc.V_RNG_32V,qvc.I_RNG_2m,qvc.DUTON,false,0,1);//小电流
//ovc.FV("REXT1",2,10e-3,ovc.V_RNG_4V,ovc.I_RNG_10MA,true,1);//REXT端口接2V电压(625)
//qvc.FV(“Pin name”,Force电压值,电压钳位,/电流钳位/,电压档位,电流档位,通道继电器,是否预设值,预设值,延时);
util.dlyms(2);
//util.dlyms(10);//(625)
qvc.MI("OUT1",2);
util.GetMeasValue("OUT1",Idd1);
for(int i=0;i<4;i++)//uA
{
Idd1[i]=Idd1[i]*1e6;
}
util.TestLog("IDD1",Idd1);
//ovc.FV("REXT1",0,10e-3,ovc.V_RNG_4V,ovc.I_RNG_10MA,false,1);//(625)
qvc.FV("OUT1",0,2,200e-6,qvc.V_RNG_2V,qvc.I_RNG_200u,qvc.DUTOFF,false,0,0);//下电
tmu.SetUR("K5",tmu.OFF);
//tmu.SetUR("K3",tmu.OFF);//(625)
//tmu.SetUR("K6",tmu.OFF);
}
//********************* T3_BV_TEST *********************//暂不修改6/5->修改完
//在OUT端口注入IDD+0.2mA电流,REXT端口接0.8V电压,其余端口悬空,测试OUT端口电压(500-700V)
//在OUT端口施加500V电压, REXT端口接0.8V电压,其余端口悬空,测试OUT电流(90-250UA)
//K1-》K3 K4
//K5 ->K7 K8
//V_BV1 I_BV1 V_BV2 I_BV2
void BV(void)
{
/****************************上半*******************************/
//tmu.SetUR("K1",tmu.ON);
//tmu.SetUR("K5",tmu.ON);
tmu.SetUR("K3",tmu.ON);
tmu.SetUR("K7",tmu.ON);
util.dlyms(2);
ovc.FV("REXT1",0.8,10e-3,ovc.V_RNG_2V,ovc.I_RNG_10MA,true,1);//REXT端口接0.8V电压
//1
util.GetActiveSite(site);//IDD值不同改用串测
for(int i=0;i<4;i++)
{
if(site[i]==1)
{
set[i]=1;
set[(i+1)%4]=0;
set[(i+2)%4]=0;
set[(i+3)%4]=0;
util.ChangeActiveSite(set);
kvs.FI("OUT1_KVS",Idd1[i]*1e-6+200e-6,900,kvs.V_RNG_1000V,kvs.I_RNG_1M5A,true,1);//
}
}
util.ChangeActiveSite(site);
kvs.MV("OUT1_KVS",3,2);
util.GetMeasValue("OUT1_KVS",temp);
util.TestLog("V_BV1",temp);
kvs.FV("OUT1_KVS",0,1E-3,kvs.V_RNG_1000V,kvs.I_RNG_1M5A,true,1);
kvs.FV("OUT1_KVS",0,1E-3,kvs.V_RNG_1000V,kvs.I_RNG_1M5A,false,1);
util.dlyms(2);
//2
kvs.FV("OUT1_KVS",500,1E-3,kvs.V_RNG_1000V,kvs.I_RNG_15MA,true,1);
kvs.FV("OUT1_KVS",500,1E-3,kvs.V_RNG_1000V,kvs.I_RNG_1M5A,true,1);
util.dlyms(10);
kvs.MI("OUT1_KVS",3,2);
util.GetMeasValue("OUT1_KVS",temp);
for(int i=0;i<4;i++)//uA
{
temp[i]=temp[i]*1e6;
}
util.TestLog("I_BV1",temp);
ovc.FV("REXT1",0,10e-3,ovc.V_RNG_2V,ovc.I_RNG_10MA,false,1);
kvs.FV("OUT1_KVS",0,1E-3,kvs.V_RNG_1000V,kvs.I_RNG_1M5A,true,1);
kvs.FV("OUT1_KVS",0,1E-3,kvs.V_RNG_1000V,kvs.I_RNG_1M5A,false,1);
//tmu.SetUR("K1",tmu.OFF);
//tmu.SetUR("K5",tmu.OFF);
tmu.SetUR("K3",tmu.OFF);
tmu.SetUR("K7",tmu.OFF);
// /****************************下半*******************************/
// //tmu.SetUR("K1",tmu.ON);
// //tmu.SetUR("K5",tmu.ON);
// tmu.SetUR("K4",tmu.ON);
// tmu.SetUR("K8",tmu.ON);
// util.dlyms(2);
// ovc.FV("REXT2",0.8,10e-3,ovc.V_RNG_2V,ovc.I_RNG_10MA,true,1);//REXT端口接0.8V电压
// //1
// util.GetActiveSite(site);//IDD值不同改用串测
// for(int i=0;i<4;i++)
// {
//if(site[i]==1)
//{
// set[i]=1;
// set[(i+1)%4]=0;
// set[(i+2)%4]=0;
// set[(i+3)%4]=0;
// util.ChangeActiveSite(set);
// kvs.FI("OUT2_KVS",Idd2[i]*1e-6+200e-6,900,kvs.V_RNG_1000V,kvs.I_RNG_1M5A,true,1);//
// }
// }
// util.ChangeActiveSite(site);
//
// kvs.MV("OUT2_KVS",3,2);
// util.GetMeasValue("OUT2_KVS",temp);
// util.TestLog("V_BV2",temp);
//
// kvs.FV("OUT2_KVS",0,1E-3,kvs.V_RNG_1000V,kvs.I_RNG_1M5A,true,1);
// kvs.FV("OUT2_KVS",0,1E-3,kvs.V_RNG_1000V,kvs.I_RNG_1M5A,false,1);
//
// util.dlyms(2);
//
// //2
// kvs.FV("OUT2_KVS",500,1E-3,kvs.V_RNG_1000V,kvs.I_RNG_15MA,true,1);
// kvs.FV("OUT2_KVS",500,1E-3,kvs.V_RNG_1000V,kvs.I_RNG_1M5A,true,1);
// util.dlyms(10);
//
// kvs.MI("OUT2_KVS",3,2);
// util.GetMeasValue("OUT2_KVS",temp);
// for(int i=0;i<4;i++)//uA
// {
// temp[i]=temp[i]*1e6;
// }
// util.TestLog("I_BV2",temp);
//
// ovc.FV("REXT2",0,10e-3,ovc.V_RNG_2V,ovc.I_RNG_10MA,false,1);
// kvs.FV("OUT2_KVS",0,1E-3,kvs.V_RNG_1000V,kvs.I_RNG_1M5A,true,1);
// kvs.FV("OUT2_KVS",0,1E-3,kvs.V_RNG_1000V,kvs.I_RNG_1M5A,false,1);
// //tmu.SetUR("K1",tmu.OFF);
// //tmu.SetUR("K5",tmu.OFF);
// tmu.SetUR("K4",tmu.OFF);
// tmu.SetUR("K8",tmu.OFF);
}
//********************* T4_VREXT_IOUT_TEST *********************//
//OUT接15V电压,REXT接30R电阻到地,测试REXT端口电压(0.575-0.624V),测试IOUT电流(19.3-20.9MA)
//K3 K4 K1 K2(30R) K5 K6
//VREXT1 VREXT2 IOUT1 IOUT2
void VREXT(void)
{
//tmu.SetUR("K2",tmu.ON);
//tmu.SetUR("K4",tmu.ON);
//tmu.SetUR("K6",tmu.ON);
tmu.SetUR("K1",tmu.ON);
tmu.SetUR("K3",tmu.ON);
tmu.SetUR("K5",tmu.ON);
util.dlyms(2);
//
qvc.FV("OUT1",15,16,100e-3,qvc.V_RNG_16V,qvc.I_RNG_200m,qvc.DUTON,false,0,1);
ovc.FI("REXT1",0,2,ovc.V_RNG_2V,ovc.I_RNG_1UA,true,1);//、、打开ovc资源
util.dlyms(5);
ovc.MV("REXT1",10);
util.GetMeasValue("REXT1",temp);
util.TestLog("VREXT1",temp);
qvc.MI("OUT1",5);
util.GetMeasValue("OUT1",OUT1);
for(int i=0;i<4;i++)//MA
{
OUT1[i]=OUT1[i]*1e3;
}
//util.TestLog("IOUT1",temp);
//qvc.FV("OUT2",15,16,100e-3,qvc.V_RNG_16V,qvc.I_RNG_200m,qvc.DUTON,false,0,1);
//ovc.FI("REXT2",0,2,ovc.V_RNG_2V,ovc.I_RNG_1UA,true,1);//、、打开ovc资源
//
//ovc.MV("REXT2",5);
//util.GetMeasValue("REXT2",temp);
//util.TestLog("VREXT2",temp);
//qvc.MI("OUT2",5);
//util.GetMeasValue("OUT2",temp);
//for(int i=0;i<4;i++)//MA
//{
// temp[i]=temp[i]*1e3;
//}
util.TestLog("IOUT2",temp);
ovc.FV("REXT1",0,100e-3,ovc.V_RNG_2V,ovc.I_RNG_100MA,false,0);
qvc.FV("OUT1",0,2,200e-6,qvc.V_RNG_2V,qvc.I_RNG_200u,qvc.DUTOFF,false,0,0);
//ovc.FV("REXT2",0,100e-3,ovc.V_RNG_2V,ovc.I_RNG_100MA,false,0);
//qvc.FV("OUT2",0,2,200e-6,qvc.V_RNG_2V,qvc.I_RNG_200u,qvc.DUTOFF,false,0,0);
//tmu.SetUR("K2",tmu.OFF);
//tmu.SetUR("K4",tmu.OFF);
//tmu.SetUR("K6",tmu.OFF);
//tmu.SetUR("K1",tmu.OFF);
//tmu.SetUR("K3",tmu.OFF);
//tmu.SetUR("K5",tmu.OFF);
tmu.SetUR("ALL_K",tmu.OFF);
}
void IOUT(void)
{
util.TestLog("IOUT1",OUT1);
//util.TestLog("IOUT2",temp);
}
//********************* T5_IOUT_max_TEST *********************
//OUT1端口接15V电压,REXT端口接地,其余端口悬空,延时25mS,测试OUT端口电流。(90-125ma)
// K3(GND)-》 OVC给0V:K1->K3 K4 K4-》K5 K6
//IOUT_max1 IOUT_max2
void IOUT_15V_MAX(void)
{
//tmu.SetUR("K3",tmu.ON);
tmu.SetUR("K3",tmu.ON);
//tmu.SetUR("K4",tmu.ON);
tmu.SetUR("K5",tmu.ON);
//tmu.SetUR("K6",tmu.ON);
util.dlyms(2);
ovc.FV("REXT1",0,200e-3,ovc.V_RNG_2V,ovc.I_RNG_200MA,true,1);//接地,给0v
qvc.FV("OUT1",0,16,200e-3,qvc.V_RNG_16V,qvc.I_RNG_200m,qvc.DUTON,false,0,1);//慢上电
qvc.FV("OUT1",15,16,200e-3,qvc.V_RNG_16V,qvc.I_RNG_200m,qvc.DUTON,false,0,1);
util.dlyms(25);//25mS
qvc.MI("OUT1",10);
util.GetMeasValue("OUT1",temp);
for(int i=0;i<4;i++)
{
temp[i]=temp[i]*1e3;
}
util.TestLog("IOUT_max1",temp);
//ovc.FV("REXT2",0,200e-3,ovc.V_RNG_2V,ovc.I_RNG_200MA,true,1);//接地,给0v
//qvc.FV("OUT2",0,16,200e-3,qvc.V_RNG_16V,qvc.I_RNG_200m,qvc.DUTON,false,0,1);//慢上电
//qvc.FV("OUT2",15,16,200e-3,qvc.V_RNG_16V,qvc.I_RNG_200m,qvc.DUTON,false,0,1);
//util.dlyms(25);//25mS
//
//qvc.MI("OUT2",10);
//util.GetMeasValue("OUT2",temp);
//for(int i=0;i<4;i++)
//{
// temp[i]=temp[i]*1e3;
//}
//util.TestLog("IOUT_max2",temp);
ovc.FV("REXT1",0,200e-3,ovc.V_RNG_2V,ovc.I_RNG_200MA,false,0);
qvc.FV("OUT1",0,2,200e-6,qvc.V_RNG_2V,qvc.I_RNG_200u,qvc.DUTOFF,false,0,0);
//ovc.FV("REXT2",0,200e-3,ovc.V_RNG_2V,ovc.I_RNG_200MA,false,0);
//qvc.FV("OUT2",0,2,200e-6,qvc.V_RNG_2V,qvc.I_RNG_200u,qvc.DUTOFF,false,0,0);
tmu.SetUR("ALL_K",tmu.OFF);
}
//********************* T6_OS_RETEST *********************
//K1->K3 K4 K4 ->K5 K6
//REXT1_OS2_O OUT1_OS2_O
// REXT2_OS2_O OUT2_OS2_0
void OS_RETEST(void)
{
//tmu.SetUR("OS_K",tmu.ON);
tmu.SetUR("K3",tmu.ON);
//tmu.SetUR("K4",tmu.ON);
tmu.SetUR("K5",tmu.ON);
//tmu.SetUR("K6",tmu.ON);
util.dlyms(2);
ovc.FI("REXT1",-100e-6,2,ovc.V_RNG_2V,ovc.I_RNG_1MA,true,1);
ovc.MV("REXT1",2);
util.GetMeasValue("REXT1",temp);
util.TestLog("REXT1_OS2_O",temp);
ovc.FV("REXT1",0,100e-6,ovc.V_RNG_2V,ovc.I_RNG_1MA,false,1);
qvc.FI("OUT1",-100e-6,2,200e-6,qvc.V_RNG_2V,qvc.I_RNG_200u,qvc.DUTON,false,0,1);
qvc.MV("OUT1",2);
util.GetMeasValue("OUT1",temp);
util.TestLog("OUT1_OS2_O",temp);
qvc.FV("OUT1",0,2,200e-6,qvc.V_RNG_2V,qvc.I_RNG_200u,qvc.DUTOFF,false,0,0);
//ovc.FI("REXT2",-100e-6,2,ovc.V_RNG_2V,ovc.I_RNG_1MA,true,1);
//ovc.MV("REXT2",2);
//util.GetMeasValue("REXT2",temp);
//util.TestLog("REXT2_OS2_O",temp);
//ovc.FV("REXT2",0,100e-6,ovc.V_RNG_2V,ovc.I_RNG_1MA,false,1);
//qvc.FI("OUT2",-100e-6,2,200e-6,qvc.V_RNG_2V,qvc.I_RNG_200u,qvc.DUTON,false,0,1);
//qvc.MV("OUT2",2);
//util.GetMeasValue("OUT2",temp);
//util.TestLog("OUT2_OS2_O",temp);
//qvc.FV("OUT2",0,2,200e-6,qvc.V_RNG_2V,qvc.I_RNG_200u,qvc.DUTOFF,false,0,0);
//tmu.SetUR("OS_K",tmu.OFF);
// tmu.SetUR("K1",tmu.OFF);
// tmu.SetUR("K4",tmu.OFF);
tmu.SetUR("ALL_K",tmu.OFF);//关闭所有继电器
}
标签:OUT1,FV,tmu,编程语言,RNG,qvc,ovc,测试,TR6850S
From: https://blog.csdn.net/qq_52460199/article/details/140613413