好文档 - 专业文书写作范文服务资料分享网站

集成电路封装与系统测试

天下 分享 时间: 加入收藏 我要投稿 点赞

.

4.2 建立LM7805测试程序

BC3199 测试程序编写采用 C++语言对系统硬件行为进行描述。它采用了测试策略与数据分离的设计。用户可以通过测试程序编写出所需要的全部或者基本测试参数,通过系统软件界面修改或者输入数据。用户编写的测试程序最终将生成 DLL 动态链接库, 可以使用系统软件调用这些测试程序。

测试代码见附录 4.3 测试数据及结果

加载以上测试程序,进入以下测试界面。在连测状态下,BC3199测试系统可对测试结果进行数据统计并生成报表。经测试,得到某批次LM7805测试数据结果报表见表1。

序号 1 2 3 4 5 6 7 8 9 10 Vo (V ) 5.0122 5.0124 5.0123 5.0120 5.0119 5.0116 5.0114 5.0112 5.0110 5.0114 Vo 7V Vo 20V Vo 5mA Vo 1A Regline1 Regline2 Regload1 Regload2 (V ) (V ) (V ) (V ) (mV ) (mV ) (mV ) (mV ) 5.0134 5.0135 5.0135 5.0131 5.0130 5.0125 5.0122 5.0120 5.0118 5.0122 5.0089 5.0089 5.0087 5.0081 5.0078 5.0074 5.0070 5.0068 5.0066 5.0070 5.0137 5.0139 5.0137 5.0136 5.0135 5.0133 5.0130 5.0126 5.0123 5.0130 5.0116 5.0118 5.0117 5.0116 5.0115 5.0113 5.0110 5.0108 5.0106 5.0110 6.95 7.06 7.33 7.50 7.49 7.47 7.36 7.40 7.45 7.35 1.52 1.50 1.41 1.37 1.23 1.29 1.27 1.39 1.38 1.36 4.88 5.02 5.20 5.86 5.99 6.33 6.32 6.23 6.30 6.30 1.83 1.80 1.87 1.73 1.68 1.66 1.65 1.68 1.72 1.66 表 1 实验测试数据

图5 芯片手册数据

'.

.

由实验数据可知,当输入条件为5.0mA

通过本次测试,可以确定我们测得LM7805芯片的输出电压、电源电压调整率和负载电压调整率三个参数要求的,通过相应的电路、步骤和测试原理可以再测试LM7805芯片其他的参数,最终判断其是否为合格产品。

附录:

#include \ #include \-VeriTestATE\\\\TestFiles\\\\StdTestConfig.h\

ATE_TEST_ITEM_DECLARE(VO); //输出电压 ATE_TEST_ITEM_DECLARE(Regload);

//负载电压调整率

ATE_TEST_ITEM_DECLARE(Regline); //电源电压调整率

void CreateTestItem(void)

unsigned int ParameterID = 0; BEGIN(VO, 4.8, 5.2, \ VO.AddItemCondition(\ VO.AddItemCondition(\ \ VO.AddItemCondition(\ \ VO.AddItemCondition(\-500, \ \ VO.AddItemCondition(\ VO.AddItemCondition(\---\---\ VO.AddItemCondition(\---\---\

{

VO.AddItemCondition(\ \

MAKE(VO);

'.

.

BEGIN(Regline, 0, 100, \ Regline.AddItemCondition(\ Regline.AddItemCondition(\ \ Regline.AddItemCondition(\ \ Regline.AddItemCondition(\ \ Regline.AddItemCondition(\-500, \ \ Regline.AddItemCondition(\ \ Regline.AddItemCondition(\ Regline.AddItemCondition(\---\---\ Regline.AddItemCondition(\---\---\

MAKE(Regline); BEGIN(Regload,

0,

100, \

Regload.AddItemCondition(\ Regload.AddItemCondition(\ V(10,

\

Regload.AddItemCondition(\ \ Regload.AddItemCondition(\-5, \ \ Regload.AddItemCondition(\-1000, \ \ Regload.AddItemCondition(\ \ Regload.AddItemCondition(\ Regload.AddItemCondition(\---\---\ Regload.AddItemCondition(\---\---\ MAKE(Regload); BEGIN(IQ, 0, 8.0, \ IQ.AddItemCondition(\ IQ.AddItemCondition(\ \ IQ.AddItemCondition(\ \ IQ.AddItemCondition(\ \ IQ.AddItemCondition(\ \ IQ.AddItemCondition(\ IQ.AddItemCondition(\---\---\ IQ.AddItemCondition(\---\---\

2);

\

MAKE(IQ); BEGIN(deltaIQ_deltaI, 0.0, 0.5, \ deltaIQ_deltaI.AddItemCondition(\ deltaIQ_deltaI.AddItemCondition(\ \ deltaIQ_deltaI.AddItemCondition(\ \ deltaIQ_deltaI.AddItemCondition(\-5, \ \ deltaIQ_deltaI.AddItemCondition(\-1000, \ \ deltaIQ_deltaI.AddItemCondition(\ \ deltaIQ_deltaI.AddItemCondition(\ deltaIQ_deltaI.AddItemCondition(\---\---\

'.

.

deltaIQ_deltaI.AddItemCondition(\---\---\ MAKE(deltaIQ_deltaI); BEGIN(deltaIQ_deltaV, 0.0, 1.3, \ deltaIQ_deltaV.AddItemCondition(\ deltaIQ_deltaV.AddItemCondition(\ \ deltaIQ_deltaV.AddItemCondition(\ \ deltaIQ_deltaV.AddItemCondition(\ \ deltaIQ_deltaV.AddItemCondition(\-500, \ \ deltaIQ_deltaV.AddItemCondition(\ \ deltaIQ_deltaV.AddItemCondition(\ deltaIQ_deltaV.AddItemCondition(\---\---\ deltaIQ_deltaV.AddItemCondition(\---\---\ MAKE(deltaIQ_deltaV); BEGIN(VDrop, 0.0, 2.5, \ VDrop.AddItemCondition(\ VDrop.AddItemCondition(\ \ VDrop.AddItemCondition(\ V(6.00, \ \ VDrop.AddItemCondition(\ V(4.75, \ \ VDrop.AddItemCondition(\ V(0.1, \ \ VDrop.AddItemCondition(\ \ VDrop.AddItemCondition(\-1000, \ \ VDrop.AddItemCondition(\ \ VDrop.AddItemCondition(\ VDrop.AddItemCondition(\---\---\ VDrop.AddItemCondition(\---\---\ MAKE(VDrop);

RR.AddItemCondition(\ \ RR.AddItemCondition(\ \ RR.AddItemCondition(\ \ RR.AddItemCondition(\ \ RR.AddItemCondition(\-500, \ \ RR.AddItemCondition(\ \ RR.AddItemCondition(\---\ \---\ RR.AddItemCondition(\ MAKE(RR);

BEGIN(RR, 62, 100, \

} float GetVO(float VoutMax, float Vi, float VClamp, float Io, float IClamp, float VsOn_Delay, unsigned

{

'.

.

USING_RESULT(res); //所有继电器关 pDrv->OpenAllCBits();

pDrv->Delay(5); //根据判据判断量程 else if(VoutMax < 5.00) pDrv->SetMeasureChannel(BMV0, VM_5V); else if(VoutMax < 10.00) pDrv->SetMeasureChannel(BMV0, VM_10V); else if(VoutMax < 20.00) pDrv->SetMeasureChannel(BMV0, VM_20V); else if(VoutMax < 50.00) pDrv->SetMeasureChannel(BMV0, VM_50V);

if(VoutMax < 2.00) pDrv->SetMeasureChannel(BMV0, VM_2V);

//输入电压设置, 判断箝位量程 if(IClamp < 0.02) irange = PVI20UA; else if(IClamp < 0.2) irange = PVI200UA; else if(IClamp < 2) irange = PVI2MA; else if(IClamp < 20) irange = PVI20MA; else if(IClamp < 200) irange = PVI200MA; else if(IClamp < 2000) irange = PVI2A; else if(IClamp < 10000) irange = PVI10A; pDrv->VIFV(APVI0, FPRG, Vi, PVIV_AUTO, IClamp, -IClamp, irange);

PVI_CURRENT_RANGE irange = PVI20UA;

PVI_VOLTAGE_RANGE vrange = PVI2V; if(VClamp < 2.00) vrange = PVI2V; else if(VClamp < 5.00) vrange = PVI5V; else if(VClamp < 20.00) vrange = PVI20V; else if(VClamp < 50.00) vrange = PVI50V; pDrv->VIFI(APVI1, FT3, Io, PVII_AUTO, VClamp, -VClamp, vrange); //接入输入输出滤波电容 pDrv->SetCBits(pDrv->GetRelay(), pDrv->GetRelay(54, 55));

//负载电流设置, 判断箝位量程

pDrv->Delay(5); //打开输出继电器 if(fabs(Io) > 0.00001)

pDrv->EnableOut(APVI0);

pDrv->Delay(10); pDrv->VIOn(APVI0);

pDrv->Delay(10);

pDrv->EnableOut(APVI1);

pDrv->Delay(VsOn_Delay);

'.

集成电路封装与系统测试

.4.2建立LM7805测试程序BC3199测试程序编写采用C++语言对系统硬件行为进行描述。它采用了测试策略与数据分离的设计。用户可以通过测试程序编写出所需要的全部或者基本测试参数,通过系统软件界面修改或者输入数据。用户编写的测试程序最终将生成DLL动态链接库,可以使用系统软件调用这些测试程序。测试代码见附录4.3测试数据及结
推荐度:
点击下载文档文档为doc格式
4f07m2rds18xzko02xoc4ddq3430jm00ycu
领取福利

微信扫码领取福利

微信扫码分享