1)应尽量缩短引脚的连线,所需连接的元件(如电感)尽量靠近器件引脚的根部;
2)将高频元件布局在DUT板的一个小范围内,并远离其他元件;
3)尽量做到一点接地,防止高频信号影响地线;
4)被测器件电源端应有接地电容,防止高频信号通过电源干扰其他外围元器件和V/I源;
5)器件的输入输出端除加规定的电解电容接地外,还要在电解电容上并联合适的滤波电容;
6)特别情况下在相关V/I源的SENSE线中串入1K电阻,减少高频信号对V/I源的干扰;
7)有阈值测量的输入端对地接入高频电容,可以保证扫描信号的质量;
8)所有电容,离器件引脚越近越好,包括电容的地。
1)POWER插座中定义了5个地线AGND,PCB布板时可将这5个点连在一起,并采用较粗的线宽,推荐在正反两面将空白空间铺满AGND敷铜;
2)DUT板上的插座外壳和电缆的屏蔽层是相连的,所以在设计PCB时一定要把插座的外壳和AGND连通,否则屏蔽效果会变差;
3)在大电流的测试中FORCE线应该有足够的线宽(通常建议按大于2A/50 mil线宽设计PCB),尽量避免采用对穿孔;
4)允许一根CBIT线同时控制多个继电器,但其总电流不能超过100mA(一般继电器的工作电流都是mA级的,也就是说一根CBIT线能同时控制20个继电器的开合)。
1)PCB板是漏电的最重要的原因,选用高质量的板材是测试小电流的前提;
2)在布板时尽量拉大焊盘间的距离;
3)在PCB布线时应在正反两面用GUARD线将FORCE和SENSE线完整地包围起来,构成等电位屏蔽环,防止与其他不同电位点之间的漏电;
4)为防止PCB板线间漏电,采用飞线其实是又简单又有效的方法。
1)一定要用英文输入法写代码,并且需要区分大、小写;
2)声明的变量一定要赋初值(例如:int i=0;);
3)描述测试参数时,一定要特别注意指向正确的函数;
4)如果是V1.1.0.3以前版本(包括V1.1.0.3)的系统软件,如果用到DIO板,需要在程序里加入“#include DIO.h”语句。如果同时用到QTMU板,则QTMU板的版本一定要在V1.3以上;
5)切记:系统中,电压单位缺省是V,电流单位缺省是A,频率单位缺省是KHz,时间单位缺省是us;
6) 保存测试结果的数组,对于VI源要定义成float型一维数组,数组长度大于等于4;对于ACSM,数组长度要大于10000;QTMU的类型需要定义成double类型,数组长度等于4。例外:DIO板不同的函数返回值类型不同,具体如下:DIO板读取RAM内pattern运行结果函数――GetSerialPatternResult()返回值类型为DWORD型,十进制整数。
7)在进行电压或电流量程切换时,建议在Disable或Disconnect的状态下进行,避免在切换量程时产生电压或电流尖峰;
8)大功率器件编程时,建议把小负载参数和大负载参数分成2个函数,这样即便因为接触不良而导致小负载输出fail时,不会再继续运行大负载输出的测试,保证了测试的安全性。
1)如错误提示“Cannot open include file: "astdef.h"”。请检查include是否添加Accotest根目录下的include文件夹。
2)如错误提示“Cannot open file "Ast2k.lib"”。请检查Lib是否添加Accotest根目录下的Lib文件夹。
3)如错误提示“Cannot open include file: "windows.h"”。请检查include是否添加VC软件自带include库(VC6.0对应路径:C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE ;VC2005对应路径:C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Lib)。
4)如错误提示“cannot open file "LIBCMTD.lib"”。请检查Lib是否添加VC软件自带Lib库(VC6.0对应路径:C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VC98\LIB;VC2005对应路径:C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include)。
通常情况下,当测试参数和测试函数体数目相同,且一一对应时,测试参数的显示、测试顺序是一致的,由CParam定义。
但,当2个以上的测试参数指向同一个测试函数体时,有时显示顺序和测试顺序可能会不一致。样例如下:
我们定义了3个测试体:Void test_A();
Void test_B();
Void test_C();
同时我们又定义了四个测试参数:
CParam:a,b,c,d;
在对四个测试参数做描述时,我们把参数a指向了test_A(),把b和c指向了test_B(),参数d指向了test_C()。如果b和c在test_B()的先后顺序就是先b后c。那么我们的测试顺序和屏幕显示顺序就是一致的a→b→c→d。如果在test_B中,我们先编写了参数c的代码然后编写了参数b的代码。那么在显示时的顺序仍旧是a→b→c→d,但实际测试顺序却变成了a→c→b→d。
【注意】需要说明的是,test_A,test_B,test_C在程序中的位置和顺序对测试和显示顺序是没有影响的。
【建议】在编写程序时,特别注意test_A, test_B, test_C在程序段中的位置关系,尽量保证测试顺序和显示的顺序一致。这样做的好处是直观,思路清晰,方便对源的调用。
如果没有扫描参数,单工位和多工位程序是完全相同的,区别在于使用不同的config文件,由config文件来控制是单工位测试还是多工位测试。读出测试结果时,多工位程序通常采用循环语句读取,数据第一位是site1的,第二位是site2的。。。以此类推。比如下面一段程序:
for(i=0 ; i<siteID ; i++)
{}
其中siteID是要测试的工位数。当siteID=4时就是四工位赋值,通过上面的一段代码可以把存放在数组adresult[4]中的数据读出来。如测试的结果是a,b,c,d,adresult[4]={a,b,c,d};那么adresult[0]=a就是site1的测试结果;同理,adresult[1]=b是site2的值;adresult[2]=c是site3的值;adresult[3]=d是site4的值。
不建议客户自己修改config文件,如果需要改动,建议请供应商帮忙修改。