Page 1 of 1

Trigger Configuration to Measure CE Sat Voltage

Posted: March 1st, 2017, 2:59 pm
by jaime_g
I am trying to measure the Collector-Emitter Saturation Voltage of an NPN transistor. The Vce drops from 10V to ~0.2V when the transistor is in its saturated state. To achieve saturation a 1.55mA, 500µs pulse is applied to the base terminal with the collector bias voltage set at 10V. An SMU21612B is used to source the pulse on channel A and measure the saturation voltage on channel B.

I am not able to come up with the correct commands to configure channel B measurement trigger. I would appreciate any suggestions on the commands I should use to accomplish this task.

Here is the code i am using:

Code: Select all

reset()
display.screen = display.SMUA_SMUB[attachment=0]CE Saturation Voltage.png[/attachment]
display.smua.digits = display.DIGITS_4_5
display.smub.digits = display.DIGITS_4_5
smua.sense = smua.SENSE_REMOTE
smub.sense = smub.SENSE_REMOTE

-- Configure base current source
smua.source.autorangei = smua.AUTORANGE_OFF
smua.source.rangei = 10e-3
smua.source.leveli = 0
smua.source.limitv = 5

-- Configure collector voltage source
smub.source.autorangev = smub.AUTORANGE_OFF
smub.source.rangev = 10
smub.source.levelv = 10
smub.source.limiti = 10e-3

-- Configure collector Sat voltage measure
smub.measure.nplc		= 0.001
smub.measure.autorangev = smub.AUTORANGE_OFF
smub.measure.rangev = 1
smub.measure.autozero = smub.AUTOZERO_ONCE

-- Configure base current 500µs pulse width
trigger.timer[1].delay = 480e-6
trigger.timer[1].stimulus = smua.trigger.ARMED_EVENT_ID
trigger.timer[1].count = 1
trigger.timer[1].passthrough = false

-- Configure collector Sat voltage measurement trigger
trigger.timer[2].delay = trigger.timer[1].delay - 200e-6
trigger.timer[2].stimulus = trigger.timer[1].EVENT_ID
trigger.timer[2].count = 1
trigger.timer[2].passthrough = false

smua.trigger.arm.count = 1
smua.trigger.count = 1
smub.trigger.arm.count = 1
smub.trigger.count = 1

-- Enable base current pulse source trigger
smua.trigger.source.stimulus = smua.trigger.SWEEPING_EVENT_ID
smua.trigger.source.action = smua.ENABLE
smua.trigger.source.listi({1.55e-3})
smua.trigger.source.limitv = 5

-- Enable CE Saturation Voltage measurement trigger
smub.trigger.measure.stimulus = trigger.timer[2].EVENT_ID
smub.trigger.measure.action = smub.ENABLE
smub.trigger.measure.v(smub.nvbuffer1)

-- Return to 0V after pulse is complete
smua.trigger.endpulse.stimulus = trigger.timer[1].EVENT_ID
smua.trigger.endpulse.action = smua.SOURCE_IDLE

smua.source.output = smua.OUTPUT_ON
smub.source.output = smub.OUTPUT_ON
smua.trigger.initiate()
waitcomplete()
print(smub.measure.v(smub.nvbuffer1))
smub.source.output = smub.OUTPUT_OFF
smua.source.output = smua.OUTPUT_OFF
Here is the oscilloscope trace: