
Model 2651A High Power System SourceMeter® Instrument User's Manual Section 5: Capturing high power pulse waveforms
--[[
Name: CapturePulseV(pulseLevel, pulseWidth, pulseLimit, numPulses)
Description:
This function outputs voltage pulses with a 1% duty cycle and
performs measurements using the fast ADC to capture each pulse in
its entirety. At the conclusion of the pulse train, the data is
returned to the instrument console in a Microsoft Excel compatible format.
Parameters:
pulseLevel: The voltage level of the pulse in volts
pulseWidth: The width of the pulse in seconds
100e-6
<=
pulseWidth
<=
4e-3
pulseLimit: The current limit of the pulse in amps
numPulses:
The
number
of
pulses
to
output
Example
Usage:
CapturePulseV(5,
300e-6,
50,
5)
]]
function CapturePulseV(pulseLevel, pulseWidth, pulseLimit, numPulses)
if (numPulses == nil) then numPulses = 1 end
-- Configure the SMU
reset()
smua.reset()
smua.source.func
= smua.OUTPUT_DCVOLTS
smua.sense =
smua.SENSE_REMOTE
smua.source.rangev
= pulseLevel
smua.source.levelv
= 0
-- The bias level
smua.source.limiti
= 5
-- The DC limit
-- Use a measure range that is as large as the biggest
-- possible pulse
smua.measure.rangei
= pulseLimit
smua.measure.rangev
= pulseLevel
-- Select the fast ADC for measurements
smua.measure.adc
= smua.ADC_FAST
-- Set the measure count to be 1.25 times the width of the pulse
-- to ensure we capture the entire pulse plus falling edge.
smua.measure.count
= (pulseWidth / smua.measure.interval) * 1.25
-- Prepare the reading buffers
smua.nvbuffer1.clear()
smua.nvbuffer1.collecttimestamps
= 1
smua.nvbuffer1.collectsourcevalues
= 0
smua.nvbuffer1.fillmode
= smua.FILL_ONCE
smua.nvbuffer2.clear()
smua.nvbuffer2.collecttimestamps
= 1
smua.nvbuffer2.collectsourcevalues
= 0
smua.nvbuffer2.fillmode
= smua.FILL_ONCE
-- Cannot use source values with async measurements
2651A-900-01 Rev. A / March 2011
5-5