To program the example pulse sweep, send the following commands:
-- Restore instrument defaults and clear the measure buffer.
reset()
smua.nvbuffer1.clear()
-- Disable the pulser.
smua.pulser.enable = smua.DISABLE
-- Set contact check speed to fast.
smua.contact.speed = smua.CONTACT_FAST
-- Set the contact check threshold to 100 ohms.
smua.contact.threshold = 100
-- Check contacts against threshold.
if not smua.contact.check() then
-- Set speed to slow.
smua.contact.speed = smua.CONTACT_SLOW
-- Get aggregate resistance readings.
rhi, rlo = smua.contact.r()
-- Return contact resistances to the host.
print(rhi, rlo)
-- Terminate execution.
exit()
end
-- Set the number of pulses to 10.
smua.trigger.count = 10
-- Set trigger timer 1 to generate additional trigger events for the pulse sweep
-- corresponding to the 9 pulses that follow the first one.
trigger.timer[1].count = smua.trigger.count - 1
-- Set trigger timer 1 to delay for 1 ms between events, corresponding to the
-- pulse period.
trigger.timer[1].delay = 1e-3
-- Enable pass-through mode so that the first trigger passes through immediately
-- to generate the first pulse.
trigger.timer[1].passthrough = true
-- Specify which event starts the timer.
trigger.timer[1].stimulus = smua.trigger.ARMED_EVENT_ID
-- Enable source level changes during the sweep.
smua.trigger.source.action = smua.ENABLE
-- Specify a 10-point linear pulse sweep from 1 A to 10 A.
smua.trigger.source.lineari(1, 10, smua.trigger.count)
-- Set the source pulse width to 10 microseconds.
smua.trigger.source.pulsewidth = 10e-6
-- Configure the 2601B-PULSE to start the pulse when the trigger
-- timer event occurs.
smua.trigger.source.stimulus = trigger.timer[1].EVENT_ID
-- Enable measurements after a 9 microsecond pulse measure delay and save the result
-- in nvbuffer1. This applies for a 1 microsecond measure aperture.
smua.trigger.measure.action = smua.ENABLE