
Section 3: Functions and features
Model 2450 Interactive SourceMeter® Instrument Reference Manual
3-82
2450-901-01 Rev. B/September 2013
-- Configure digital I/0 line 6 as a trigger output
-- Used to send end-of-test trigger to component handler
digio.line[6].mode = digio.MODE_TRIGGER_OUT
-- Output a falling edge trigger
trigger.digout[6].logic = trigger.LOGIC_NEGATIVE
-- Set width of output trigger pulse to 10 us
trigger.digout[6].pulsewidth = 10E-6
-- Trigger pulse will be output when Notify Block generates an event
trigger.digout[6].stimulus = trigger.EVENT_NOTIFY1
-- Reset existing trigger model settings.
trigger.model.load("EMPTY")
-- Configure the Trigger Model
-- Block 1: Clear defbuffer1
trigger.model.setblock(1, trigger.BLOCK_BUFFER_CLEAR, defbuffer1)
-- Block 2: Wait for start-of-test trigger on digital I/O line 5
trigger.model.setblock(2, trigger.BLOCK_WAIT, trigger.EVENT_DIGIO5)
-- Block 3: Turn SMU output ON
trigger.model.setblock(3, trigger.BLOCK_SOURCE_OUTPUT, smu.ON)
-- Block 4: Delay for 1 ms to allow source to settle; adjust as appropriate
trigger.model.setblock(4, trigger.BLOCK_DELAY_CONSTANT, 0.001)
-- Block 5: Measure resistance and store result in defbuffer1
trigger.model.setblock(5, trigger.BLOCK_MEASURE, defbuffer1)
-- Block 6: Turn SMU output OFF
trigger.model.setblock(6, trigger.BLOCK_SOURCE_OUTPUT, smu.OFF)
-- Block 7: Check if 99<=R<=101; if yes, go to Block 16
trigger.model.setblock(7, trigger.BLOCK_BRANCH_LIMIT_CONSTANT,
trigger.LIMIT_INSIDE, 99, 101, 16, 5)
-- Block 8: Check if 101<=R<=103; if yes, go to Block 18
trigger.model.setblock(8, trigger.BLOCK_BRANCH_LIMIT_CONSTANT,
trigger.LIMIT_INSIDE, 101, 103, 18, 5)
-- Block 9: Check if 104<=R<=106; if yes, go to Block 20
trigger.model.setblock(9, trigger.BLOCK_BRANCH_LIMIT_CONSTANT,
trigger.LIMIT_INSIDE, 104, 106, 20, 5)
-- Block 10: Check if 106<=R<=108; if yes, go to Block 22
trigger.model.setblock(10, trigger.BLOCK_BRANCH_LIMIT_CONSTANT,
trigger.LIMIT_INSIDE, 106, 108, 22, 5)
-- Block 11: Set digital I/O lines 1-4; output decimal 15 (binary 1111) to
component handler
trigger.model.setblock(11, trigger.BLOCK_DIGITAL_IO, 15, 15)
-- Block 12: Delay 1 ms; controls duration of digital bit patterns; adjust as
appropriate
trigger.model.setblock(12, trigger.BLOCK_DELAY_CONSTANT, 0.001)
-- Block 13: Set digital I/O lines 1-4; output decimal 0 (binary 0000) clear
pattern to component handler
trigger.model.setblock(13, trigger.BLOCK_DIGITAL_IO, 0, 15)
-- Block 14: Notify block generates event, which causes output of a trigger pulse
on digital I/O line 6
trigger.model.setblock(14, trigger.BLOCK_NOTIFY, trigger.EVENT_NOTIFY1)
-- Block 15: Loop back to Block 2; keep looping until all resistors have been
tested
trigger.model.setblock(15, trigger.BLOCK_BRANCH_COUNTER, number_of_resistors, 2)
-- Block 16: Set digital I/O lines 1-4; output decimal 1 (binary 0001) to component
handler
trigger.model.setblock(16, trigger.BLOCK_DIGITAL_IO, 1, 15)