在初始设置完成后,将进行DAC测试。这里只给出在IOUT1端的INL与DNL测试。对于其他测试,请参见完整的测试脚本。注意:数字源表仪器始终“假定”其通过内部源测试电流。在这种情况下,正电流从端点流出,负电流从端点流入。如节点1的SMU A和SMU B,其测量到的极性与使用典型电流表时的极性是相反的。从电路流入数字源表[5]仪器的正向电流,将作为负电流测量,反之亦然。
IOUT1.source.output = IOUT1.OUTPUT_ON --Turn ON SMU outputs
iout1 = {} --Declare table to hold measurements at output IOUT1; table index begins with 1
for j = 0, MaxCode do --j is the code applied to the digital inputs
DIO.writeport(j) --Apply digital inputs
delay(0.001) --Allow 1ms settling time
iout1[j+1] = -IOUT1.measure.i() --Minus sign corrects for polarity of measurements
end –for
IOUT1.source.output = IOUT1.OUTPUT_OFF --Turn OFF outputs of all SMUs
一旦测量完成,节点1测试脚本处理器将执行所有计算,并检测通过/失效失效状态数据。脚本语言拥有一个广泛的公式库,它允许TSP执行复杂的数据计算,而且不需要向主机控制器传送数据进行处理。这个完整的示例程序说明2602型数字源表如何执行线性回归计算。
--Compute maximum integral nonlinearity(INL)
--Check for monotonicity; Compute maximum differential nonlinearity(DNL)
--Slope_bf and intercept_bf are the slope and intercept of the best-fit straight line
inlmax_iout1 = 0
dnlmax_iout1 = 0
mono_iout1 = “Monotonic”
for j = 0, MaxCode do
inl_iout1 = math.abs(iout1[j+1]-(slope_bf * j + intercept_bf)) --Calcs for IOUT1
if inl_iout1 > inlmax_iout1 then
inlmax_iout1 = inl_iout1
end --if
if j > 0 then
--Test for monotonicity
diff_iout1 = iout1[j] – iout1[j-1]
if diff_iout1 < 0 then
mono_iout1 = “NON-Monotonic”
end --if
--Compute dnl and test for max.
dnl_iout1 = math.abs(diff_iout1 – Lsb)
if dnl_iout1 > dnlmax_iout1 then
dnlmax_iout1 = dnl_iout1
end –if
end --if
end --for
inl_iout1_lsb = inlmax_iout1 / Lsb --Express INL and DNL in terms of nominal LSB
dnl_iout1_lsb = dnlmax_iout1 / Lsb
一旦计算出各种DAC参数,TSP将检测数值并确定器件的通过/失效失效状态。然后,它通过向节点1 DIO端口写入数字位模式,向器件机械手发送正确的分拣命令。
if PartStatus =”GOOD” then
DIO.writeport(GoodBitPattern) --Send “good part” bit pattern to component handler
else
DIO.writeport(BadBitPattern) --Send “bad part” bit pattern to component handler end –if
由于所有测试数据都要经过TSP的处理和评估,因此不需要不需要向主机控制器发送所有数据。不过,当需要SPC或者满足其他数据记录或保持记录要求时,这很容易完成。print函数向2602型数字源表输出队列写入指定参数,主机控制器可以上载这些参数。如果需要,可以在仪器前部面板显示器上可以显示数据和/或测试结果。此外,还可以使用标准的“C”格式化字符串,对数据进行格式化。
--Send the monotonicity results and max INL and DNL values measured at IOUT1
print(string.format(“%s, % 1.2f, %1.2f”, mono_iout1, dnl_iout1_lsb, inl_iout1_lsb))
--Display INL & DNL on front panel displays
MASTER.display.clear()
MASTER.display.setcursor(1,1,0)
MASTER.display.settext(string.format(“INL= %1.2f LSBs”, inl_iout1_lsb))
MASTER.display.setcursor(2,1,0)
MASTER.display.settext(string.format(“DNL= %1.2f LSBs, dnl_iout1_lsb))