High Voltage SourceMeter Instrument User's Manual Section 6: Measure I-
V characteristics of FETs
2470-900-01 Rev. A / May 2019 6-19
-- Populate the stepVals source config list, with source levels 2 V to 5 V.
for i = gateVstart, gateVstop, gateStepSize do
gate.smu.source.level = i
gate.smu.source.configlist.store("stepVals")
end
local stepPoints = (gateVstop - gateVstart) * (1 / gateStepSize) + 1
-- Set up the trigger model.
gate.trigger.model.setblock(1, trigger.BLOCK_CONFIG_RECALL, "stepVals")
gate.trigger.model.setblock(2, trigger.BLOCK_SOURCE_OUTPUT, gate.smu.ON)
gate.trigger.model.setblock(3, trigger.BLOCK_MEASURE)
gate.trigger.model.setblock(4, trigger.BLOCK_NOTIFY, gate.trigger.EVENT_NOTIFY1)
gate.trigger.model.setblock(5, trigger.BLOCK_WAIT, gate.trigger.EVENT_TSPLINK1)
gate.trigger.model.setblock(6, trigger.BLOCK_CONFIG_NEXT, "stepVals")
gate.trigger.model.setblock(7, trigger.BLOCK_BRANCH_COUNTER, stepPoints, 3)
gate.trigger.model.setblock(8, trigger.BLOCK_SOURCE_OUTPUT, gate.smu.OFF)
--########################## Model 2470 #2 (drain) setup ################
-- Set up the source function.
drain.smu.source.configlist.create("sweepVals")
drain.smu.source.func = drain.smu.FUNC_DC_VOLTAGE
drain.smu.source.autorange = drain.smu.ON
drain.smu.source.ilimit.level = drainIlimit
-- Set up the measure function.
drain.smu.measure.func = drain.smu.FUNC_DC_CURRENT
drain.smu.measure.autorange = drain.smu.OFF
drain.smu.measure.terminals = drain.smu.TERMINALS_REAR
drain.smu.measure.range = drainIlimit
-- Set up TSP-Link triggering.
drain.tsplink.line[1].mode = drain.tsplink.MODE_SYNCHRONOUS_ACCEPTOR
drain.trigger.tsplinkout[1].stimulus = drain.trigger.EVENT_NOTIFY1
-- Populate the sweepVals source config list, with source levels
-- 0 V to 5 V in 100 mV steps.
for i = drainVstart, drainVstop, drainStepSize do
drain.smu.source.level = i
drain.smu.source.configlist.store("sweepVals")
end
local sweepPoints = (drainVstop - drainVstart) * (1 / drainStepSize) + 1
-- Set up the trigger model.
drain.trigger.model.setblock(1, drain.trigger.BLOCK_CONFIG_RECALL, "sweepVals")
drain.trigger.model.setblock(2, drain.trigger.BLOCK_SOURCE_OUTPUT, drain.smu.ON)
drain.trigger.model.setblock(3, drain.trigger.BLOCK_WAIT,
drain.trigger.EVENT_TSPLINK1)
drain.trigger.model.setblock(4, drain.trigger.BLOCK_DELAY_CONSTANT, 0.01)
drain.trigger.model.setblock(5, drain.trigger.BLOCK_MEASURE)
drain.trigger.model.setblock(6, drain.trigger.BLOCK_CONFIG_NEXT, "sweepVals")
drain.trigger.model.setblock(7, drain.trigger.BLOCK_BRANCH_COUNTER, sweepPoints, 4)
drain.trigger.model.setblock(8, drain.trigger.BLOCK_NOTIFY,
drain.trigger.EVENT_NOTIFY1)
drain.trigger.model.setblock(9, drain.trigger.BLOCK_BRANCH_COUNTER, stepPoints,3)
drain.trigger.model.setblock(10, drain.trigger.BLOCK_SOURCE_OUTPUT, drain.smu.OFF)