Tektronix Technical Forums are maintained by community involvement. Feel free to post questions or respond to questions by other members. Should you require a time-sensitive answer, please contact your local Tektronix support center here.

2657A Output Discharge

Model 2657A
Post Reply
bpatterson
Posts: 17
Joined: September 25th, 2014, 1:22 pm
Country: United States

2657A Output Discharge

Post by bpatterson » September 25th, 2014, 1:36 pm

Hello, we have a Keithley 2657A for high voltage reverse bias testing of diodes. We are currently using it to probe devices on a wafer with short times (time to move prober) between tests. We recently noticed that there are sometimes arcs occurring when the probe needle is lifted off of the device. We assume this is because there is still some potential on the needles that hasn't been discharged or dissipated through the leakage of the device.

Is there any way to force the output to discharge before disabling the output? I notice that there is some information about output off states in the manual but I can't tell if setting a zero output off mode actually pulls the output down to zero when the connection is still open or if this is just a setting for the internal source to go to zero before the next measurement (with the external connection closed). We are looking for something that would pull the device to zero bias before it moves to the next device.

thanks

Andrea C
Keithley Applications
Keithley Applications
Posts: 1263
Joined: October 15th, 2010, 10:35 am
Country: United States
Contact:

Re: 2657A Output Discharge

Post by Andrea C » September 26th, 2014, 6:16 am

Hello,

Can you clarify the configuration of the SMU during performance of the test?

I would think you are forcing a positive voltage into the cathode of the diode.
How much voltage? What is the current compliance limit set for?

Are you programming the voltage to go back to zero volts before moving the prober?

Do you keep the output on the entire time, or is it turned off after each test and before you move the prober?

Andrea

bpatterson
Posts: 17
Joined: September 25th, 2014, 1:22 pm
Country: United States

Re: 2657A Output Discharge

Post by bpatterson » September 26th, 2014, 9:27 am

Thank you for the response.

I'm using the basic example shown in the TSB for high voltage diode sweeps (K2657A_DiodeRL_Swp). Below is the code for this. I have a different program controlling the SMU through GPIB when I send the DiodeRL_Swp code as a script on the SMU and then just call the script with parameters to operate it. It acts like an independent call of the below code every time I measure a device.
Can you clarify the configuration of the SMU during performance of the test? I would think you are forcing a positive voltage into the cathode of the diode.
How much voltage? What is the current compliance limit set for?
I have a 2w connection with the high terminal set to anode and low terminal set to cathode. I believe this insures that the chuck (cathode) is close to ground. I then sweep from 0 to -1200V every 100volts with a compliance of 10mA.
Are you programming the voltage to go back to zero volts before moving the prober?
Not sure about this one. My knowledge of programming these SMUs is pretty limited. I just started from the examples and if it worked how I thought it should I stuck with it. Is going back to zero volts an automated thing (default off-state setting) or do you need to actually tell it to go to zero each time?
Do you keep the output on the entire time, or is it turned off after each test and before you move the prober?
Looks like this code turns the output off each time.



Code:

Code: Select all

function DiodeRL_Swp(vstart,vstop,vstep,irange,ilimit,sourceDelay)

	--Reset and initialize instrument
	reset()
	status.reset()
	errorqueue.clear()
	
	--Configure source function as 2W DCVOLTS
	smua.source.func = smua.OUTPUT_DCVOLTS
	smua.sense = smua.SENSE_LOCAL
	
	--Define a local variable to store the number of points in the sweep
	local l_numPoints 
	
	--Calculate the number of points in the sweep based on the start and stop values
	l_numPoints = math.abs((vstop - vstart) / vstep) + 1
	
	--Set up source range
	if math.abs(vstart) > math.abs(vstop) then 
		smua.source.rangev = vstart
	else
		smua.source.rangev = vstop
	end 
	
	--Set up source delay
	smua.source.delay = sourceDelay
	
	--Set up current compliance
	smua.source.limiti = ilimit
	
	--Set up current measurement range
	if irange == "auto" then
		smua.measure.autorangei = smua.AUTORANGE_ON
	else
		smua.measure.autorangei = smua.AUTORANGE_OFF
		smua.measure.rangei = irange
	end 
	
	--Set the integration time
	smua.measure.nplc = 1
		
	--Configure the reading buffers
	smua.nvbuffer1.clear()
	smua.nvbuffer1.appendmode = 0
	smua.nvbuffer1.collecttimestamps = 1
	smua.nvbuffer1.collectsourcevalues = 0
	smua.nvbuffer1.fillmode = smua.FILL_ONCE
	smua.nvbuffer2.clear()
	smua.nvbuffer2.appendmode = 0
	smua.nvbuffer2.collecttimestamps = 1
	smua.nvbuffer2.collectsourcevalues = 0
	smua.nvbuffer2.fillmode = smua.FILL_ONCE

	--Configure the source lsweep
	smua.trigger.source.linearv(vstart, vstop, l_numPoints)
	smua.trigger.source.action = smua.ENABLE
	smua.trigger.source.stimulus = 0
	
	--Configure measurements during the sweep
	smua.trigger.measure.action = smua.ENABLE
	smua.trigger.measure.stimulus = 0
	smua.trigger.measure.iv(smua.nvbuffer1, smua.nvbuffer2)
	
	--Configure trigger model parameters
	smua.trigger.count = l_numPoints
	smua.trigger.arm.count = 1
	
	--Turn on the output
	smua.source.output = 1
	
	--Initiate the sweep and wait until sweep is complete before proceeding to next command
	smua.trigger.initiate()
	waitcomplete()
	
	--Turn off the output
	smua.source.output = 0		

--This function prints the data from the smua.nvbuffer1 and smua.nvbuffer2 reading buffers into three separate columns.
	if smua.nvbuffer1.n == 0 then 
		print("No readings in buffer")
	else	
		print("Timestamps\tCurrent\tVoltage")
		for i = 1, smua.nvbuffer1.n do 
			print(string.format("%g\t%g\t%g", smua.nvbuffer1.timestamps[i], smua.nvbuffer1.readings[i], smua.nvbuffer2.readings[i]))
		end
	end
end	

Andrea C
Keithley Applications
Keithley Applications
Posts: 1263
Joined: October 15th, 2010, 10:35 am
Country: United States
Contact:

Re: 2657A Output Discharge

Post by Andrea C » September 29th, 2014, 12:44 pm

Thanks for the detailed response.

The default output off state is for the smu to force 0 volts with a 1mA current limit. It seems a little surprising that you can move the prober faster than the -1200 volts can be discharged back to zero volts.

How long are your cables?

Nevertheless, it seems that you have a bit of an RC time constant and need to allow more time to discharge the circuit before moving the prober.

If you want to experiment with it, you could follow your existing code with a few print(smua.measure.v()) commands to see what the measured voltage is and to witness the decay. The output can remain in the off state and still take these voltage measurements.

Likewise, if you had it measure the current using print(smua.measure.i()) command and find that it is at the 1mA current limit, then increasing the current limit in use when the output is off would allow a faster decay (smua.source.offlimiti = xx).

Post Reply

Return to “2657A High Voltage SourceMeter”

Who is online

Users browsing this forum: No registered users and 1 guest