2602型數(shù)字源表測(cè)試腳本及兩個(gè)典型命令
腳本可能是一個(gè)執(zhí)行多項(xiàng)測(cè)試的較長(zhǎng)程序。
依照良好的編程規(guī)范,可以編寫出創(chuàng)建和調(diào)用函數(shù)的腳本,就像計(jì)算機(jī)中的控制程序一樣。一旦函數(shù)建立,就可以通過腳本以及測(cè)試腳本處理器中的其他函數(shù)中進(jìn)行調(diào)用,或者通過主機(jī)控制器中的測(cè)試執(zhí)行程序進(jìn)行調(diào)用。由于參數(shù)可以傳遞至函數(shù),這就提供了一種非常簡(jiǎn)單的方法,可以輕松的將被測(cè)件測(cè)試相關(guān)參數(shù),如輸入信號(hào)電平或限值等,從控制器傳遞至數(shù)字源表內(nèi)部的測(cè)試程序中。
在吉時(shí)利公司網(wǎng)站(www.keithley.com)可以下載記錄詳盡的測(cè)試DAC腳本示例。這個(gè)腳本是全功能的,可以與圖3所示的兩個(gè)2602數(shù)字源表一起使用。為了使讀者領(lǐng)會(huì)新的腳本語(yǔ)言,我們從DAC測(cè)試腳本中選取以下代碼片段。注意,雙點(diǎn)劃線(--)表示注釋。
讓我們看兩個(gè)典型命令:
node[1].smua.source.func = node[1].smua.OUTPUT _ DCVOLTS
node[1].smua.source.levelv = 0
腳本語(yǔ)言運(yùn)行使用別名,這可能使代碼更可讀,并改進(jìn)代碼執(zhí)行速度。我們?yōu)镈AC測(cè)試示例定義了以下別名:
MASTER = node[1]
--Alias indicating control is via Node 1
SLAVE = node[2]
--Node 2 is controlled by MASTER via TSP-Link
IOUT1 = MASTER.smua
--Alias for SMU measuring current output #1
--IOUT1 is equivalent to node[1].smua
IOUT2 = MASTER.smub
--Alias for SMU measuring current output #2
--IOUT2 is equivalent to node[1].smub
DIO = MASTER.digio
--Alias for Digital I/O of 2602 #1
--DIO is equivalent to node[1].digio
VPLUS = SLAVE.smua
--Alias for SMU supplying V+ and measuring current draw
--VPLUS is equivalent to node[2].smua
VREF = SLAVE.smub
--Alias for SMU supplying reference voltage (Vref)
--VREF is equivalent to node[2].smub
在整個(gè)示例中都使用了別名。利用定義的別名,示例命令可以重寫為:
IOUT1.source.func = IOUT1.OUTPUT_DCVOLTS
IOUT1.source.levelv = 0
通常,腳本語(yǔ)言[3]不需要明確聲明變量。根據(jù)對(duì)其的賦值,它們被聲明和定義為 “on the fly”。但表格(也就是數(shù)組)除外, 它們必須定義數(shù)據(jù)類型。所有變量都是全局的,除非明確聲明為本地的。在代碼片段出現(xiàn)以下“常數(shù)”:
Vref = 10
--Use +10VDC reference voltage
IoutMax = 0.002
--Max expected current output
Nplc = 0.001
--Integration time for SMU A-to-D converters (in terms of power line cycles)
Nbits = 8
--Number of DAC control bits (digital inputs)
Ncodes = 2^Nbits
--Number of possible control codes
MaxCode = Ncodes - 1
--Decimal equivalent of full-scale code (255 for 8-bit DAC)
Lsb = Vref / MaxCode
--Nominal value of least significant bit
在開始實(shí)際測(cè)試序列之前,一般要對(duì)儀器進(jìn)行某些初始設(shè)置。在我們的示例中,初始設(shè)置包括設(shè)置源函數(shù)及范圍、測(cè)量函數(shù)及范圍、電壓檢測(cè)模式等等。所有這4個(gè)源-測(cè)量單元[4]的配置都是類似的。對(duì)于節(jié)點(diǎn)1的SMU A,某些設(shè)置命令如下:
MASTER.reset()
--Reset all Node 1 logical instruments to default settings
IOUT1.sense = IOUT1.SENSE_REMOTE --Use REMOTE (4-wire) voltage sensing
IOUT1.source.func = IOUT1.OUTPUT_DCVOLTS --Configure SMU to source DCV
IOUT1.source.rangev = 0 --Set voltage source ranges;
--2602 picks appropriate range based on programmed value
IOUT1.source.levelv = 0 --To measure current, source zero volts on lowest range
IOUT1.source.limiti = 1.2 * IoutMax --Set current compliance limit (20% over max)
IOUT1.measure.nplc = Nplc --Set integration times for all measurements
IOUT1.measure.autozero = IOUT1.AUTOZERO_AUTO --Autozero for max accuracy;
IOUT1.measure.rangei = IoutMax --Set up current measurement range; Measurement
--range for source function fixed at source range val
IOUT1.measure.filter.type = IOUT1.FILTER_REPEAT_AVG --Use REPEAT filter
IOUT1.measure.filter.count = 5 --Reading will be average of 5 consecutive measurements
IOUT1.measure.filter.enable = IOUT1.FILTER_ON --Enable Node 1 SMU A digital filter
--Set measurement parameters the 2602s will display (if display is enabled)
--Displays can be disabled to improve test speed
MASTER.display.screen = MASTER.display.SMUA_SMUB --Digital port isn’t affected by reset so user must set desired initial state
DIO.writeport(0)
--Set all digital control bits to zero
DIO.writeprotect(16128) --Write protect bits 9 through 14, which are reserved for
--component handler control in this example.
在初始設(shè)置完成后,將進(jìn)行DAC測(cè)試。這里只給出在IOUT1端的INL與DNL測(cè)試。對(duì)于其他測(cè)試,請(qǐng)參見完整的測(cè)試腳本。注意:數(shù)字源表儀器始終“假定”其通過內(nèi)部源測(cè)試電流。在這種情況下,正電流從端點(diǎn)流出,負(fù)電流從端點(diǎn)流入。根據(jù)這種規(guī)定,源表將以純電流表模式運(yùn)行,如節(jié)點(diǎn)1的SMU A和SMU B,其測(cè)量到的極性與使用典型電流表時(shí)的極性是相反的。從電路流入數(shù)字源表[5]儀器的正向電流,將作為負(fù)電流測(cè)量,反之亦然。
評(píng)論