Agilent E5270 Series Parametric Test Solution Sample Program: Gummel Plot Measurements

Transcription

Agilent E5270 Series Parametric Test Solution Sample Program: Gummel Plot Measurements
Agilent E5270 Series Parametric Test Solution
Sample Program:
Gummel Plot Measurements
with Pulsed Sweep Waveform
June 2003
Table of Contents
• Problem of Traditional Pulsed Sweep Measurements
• Technique of Pulsed Sweep with Multi-channel Sweep
Measurements
• Gummel Plot Measurement Results
• Waveform of Emitter Voltage
• Pulse Width vs. Number of Samples
• Conclusion
• How to Execute PGUMMEL.BAS program
June 2003
E5270 Series Sample Program
Page 2
Problem of Traditional Pulsed Sweep
Measurements
• Pulsed sweep measurement is necessary for suppressing
device self-heating.
• However, only one SMU can measure current or voltage
with the pulsed sweep measurement.
June 2003
E5270 Series Sample Program
Page 3
Technique of Pulsed Sweep with Multi-channel
Sweep Measurements
Vb
Ib
0V
Ie
A
A
A
Ic
Vc
Ve
0V
Ve: 0.2 to -1 V
Multi-channel Staircase
Sweep Measurement
•AD conversion for each
channel starts at the same
time, if high-speed ADC (perch ADC) is used with fixed
measurement range.
June 2003
E5270 Series Sample Program
• Each measurement point is a multi-channel sweep
measurement of two steps: one is 0 V and the other is
Ve.
• Each multi-channel sweep measurement is executed by
the program memory function by specifying parameters:
Ve and measurement ranges.
• Measured values for the first step are discarded.
• FOR-NEXT loop integrates all the multi-channel sweep
measurements to make an output waveform similar to a
pulsed sweep measurement.
Page 4
Gummel Plot Measurement Results
SMU1: emitter
-0.2V to 1.0V, 10mV step
Ie_comp=200mA
SMU2: base
0 V constant
Ib_comp=100mA
SMU3: collector
0 V constant
Ic_comp=100mA
Gummel Plot
1.E+00
1.E-01
1.E-02
1.E-03
|Ib|, |Ic| (A)
1.E-04
1.E-05
Ib_pulse
Ic_pulse
1.E-06
1.E-07
1.E-08
1.E-09
1.E-10
1.E-11
0
0.2
0.4
0.6
0.8
1
Vb, Vc (V)
June 2003
E5270 Series Sample Program
Page 5
Waveform of Emitter Voltage (Ve)
SMU1: emitter
-0.2V to 1.0V, 0.1V step
Ie_comp=200mA
SMU2: base
0 V constant
Ib_comp=100mA
SMU3: collector
0 V constant
Ic_comp=100mA
OV
Ve=-0.2 V
June 2003
-0.3 V
-0.4 V -0.5 V
E5270 Series Sample Program
-0.6 V
-0.7 V
-1.0 V
Waveform is the same as
the pulsed sweep
measurements.
-0.8 V -0.9 V
Page 6
Enlarged Waveform of Emitter Voltage (Ve)
Minimum pulse width is
about 1.5ms with:
• high-speed ADC
• fixed range
• auto mode for ADC
• No of samples: 1
OV
June 2003
E5270 Series Sample Program
Page 7
Pulse Width vs. Number of Samples
Minimum pulse width is
about 1.3 ms with:
• high-speed ADC
• fixed range
• auto mode for ADC
• No of samples: 1 to 16
Pulse Width vs. Number of Samples
Pulse Width (ms)
4
When multi-channel sweep
measurement (MM 16) is used
for the pulsed sweep waveform,
AD conversion for each SMU
starts at the same time.
3
2
1
0
0
5
10
15
20
Number of Samples
June 2003
E5270 Series Sample Program
Page 8
Conclusion of Pulsed Sweep
• It is possible to output a pulsed sweep waveform and to
execute multi-channel measurements.
• Minimum pulse width is about 1.3 ms.
• This measurement technique can be used for suppressing
device self-heating.
June 2003
E5270 Series Sample Program
Page 9
How to Execute PGUMMEL.BAS Program
1. Start HP BASIC or HT BASIC on your computer.
2. Load the PGUMMEL.BAS program with GET command.
3. Modify necessary parts as follows:
• GPIB address for the E5270A.
• Channel numbers assigned to the terminals of bipolar transistor.
• Sweep parameters such as the start and stop voltages for emitter.
4. Run the program by selecting the RUN softkey.
Then the program prompts you to enter a filename in which
the measurement results are saved.
June 2003
E5270 Series Sample Program
Page 10
PGUMMEL.BAS Program Details with HP BASIC
--Initialization-• Data transfer format is set to ASCII (12 digits w/o header).
440
450
460
470
480
490
500
510
520
530
540
550
560
• Sampling mode and its number is set for high-speed ADC.
In this case, number of samples are specified by a variable
“Samples” with auto mode.
! Initializing DCS (E5270)
OUTPUT @Dcs;"*RST”
OUTPUT @Dcs;"*OPC?”
ENTER @Dcs;Reply
OUTPUT @Dcs;"FMT 2,1”
OUTPUT @Dcs;"AIT";0,1,Samples
OUTPUT @Dcs;"WAT";1,1
! source wait time: 0 - 10, 0.1 resolution
OUTPUT @Dcs;"WAT";2,1
! measure wait time: 0 - 10, 0.1 resolution
OUTPUT @Dcs;"CN";Emitter,Base,Collector
• Output switches
!
! Set CONST (base and collector terminal: common)
OUTPUT @Dcs;"DV";Base,0,0,Ib_comp
OUTPUT @Dcs;"DV";Collector,0,0,Ic_comp
June 2003
for terminals are ON.
• Output 0 V to base and collector terminals
by specifying compliance values.
E5270 Series Sample Program
Page 11
PGUMMEL.BAS Program Details with HP BASIC
--Program Memory for Ve 2 Point Sweep-• Store program codes to memory No 1.
580
590
600
610
620
630
640
650
660
! Set VAR1 Sweep for PROGRAM MEMORY (emitter terminal: voltage source)
OUTPUT @Dcs;"ST 1”
OUTPUT @Dcs USING "3A,D,13A,SZ.4DE";"WV ",Emitter,",1,0,0,%R0,2,",Ie_comp
OUTPUT @Dcs;"RI";Base,"%I0”
OUTPUT @Dcs;"RI";Collector,"%I1”
OUTPUT @Dcs;"RI";Emitter,"%I2”
• Emitter voltage sweep with 2 steps:
OUTPUT @Dcs;"MM";16,Base,Collector,Emitter
start is 0 V and stop is real
OUTPUT @Dcs;"XE”
variable %R0.
OUTPUT @Dcs;"END"
• Measurement ranges for base,
• Measurement mode is collector, and emitter SMUs are
specified by integer variables %I0, %I1,
16 (multi-channel
and %I2.
sweep measurement).
• Execute a measurement.
• End of program codes.
June 2003
E5270 Series Sample Program
Page 12
PGUMMEL.BAS Program Details with HP BASIC
--Pre-measure to Decide First Current Range-680
690
700
710
720
730
740
750
760
770
780
790
! pre-measure
OUTPUT @Dcs;"DV";Emitter,0,Ve_start,Ie_comp
OUTPUT @Dcs;"MM";1,Base,Collector,Emitter
OUTPUT @Dcs;"XE"
• Execute measurement.
OUTPUT @Dcs;"*OPC?"
• Wait for operation
ENTER @Dcs;Reply
completion.
OUTPUT @Dcs;"DZ";Emitter
• Output 0 V for emitter
ENTER @Dcs;Buf$
terminal.
PRINT Buf$
Ib0=VAL(Buf$[1;12])
• Read strings including
Ic0=VAL(Buf$[14;12])
measured values.
Ie0=VAL(Buf$[27;12])
• Extract Ib, Ic, and Ie
• Output the start voltage
(Ve_start) for emitter.
• Specify spot measurement
(measurement mode) with the
measurement channels for
base, collector, and emitter
terminals.
from the strings.
June 2003
E5270 Series Sample Program
Page 13
PGUMMEL.BAS Program Details with HP BASIC
--FOR-NEXT Loop for Pulsed Sweep-820 ! Start Sweep
830 FOR J=1 TO Ve_num
840
V=Ve_start+Ve_step*(J-1)
870
IF J=1 THEN
880
OUTPUT @Dcs;"VAR";0,0,FNRange(Ib0)
890
OUTPUT @Dcs;"VAR";0,1,FNRange(Ic0)
900
OUTPUT @Dcs;"VAR";0,2,FNRange(Ie0)
910
ELSE
920
OUTPUT @Dcs;"VAR";0,0,FNRange(Ib(J-1))
930
OUTPUT @Dcs;"VAR";0,1,FNRange(Ic(J-1))
940
OUTPUT @Dcs;"VAR";0,2,FNRange(Ie(J-1))
950
END IF
960
OUTPUT @Dcs;"VAR";1,0,V
970
OUTPUT @Dcs;"DO 1"
980
OUTPUT @Dcs;"*OPC?"
990
ENTER @Dcs;Reply
1010
!
1020
ENTER @Dcs;Buf$
1040
!
1050
Ib(J)=VAL(Buf$[52+1;12])
1060
Ic(J)=VAL(Buf$[52+14;12])
1070
Ie(J)=VAL(Buf$[52+27;12])
1080
Ve(J)=VAL(Buf$[52+40;12])
1090
Vc(J)=-1*Ve(J)
1100 NEXT J
June 2003
E5270 Series Sample Program
• FOR-NEXT loop for each Ve pulse.
• Calculate pulse peak of each Ve.
• If it is the first pulse, calculate the appropriate
current ranges from the pre-measure results, and
set them to the variables of program memory.
• If it is the second or later pulse, calculate the
appropriate current ranges from the previous
current measurement results, and set them to
the variables of program memory.
• Set the pulse peak to the variable of program
memory.
• Execute a program memory.
• Wait for operation completion.
• Read strings including the measurement results.
• Extract Ib, Ic, Ie, and Ve from the strings.
• Calculate the Vc from the Ve (Vc=-1xVe).
Page 14
PGUMMEL.BAS Program Details with HP BASIC
--After the Measurement-• Output 0 V for all the SMUs.
1160
1170
1180
1190
! after the sweep
OUTPUT @Dcs;"DZ"
OUTPUT @Dcs;"CL"
!
June 2003
E5270 Series Sample Program
• Output switches for terminals are OFF.
Page 15
PGUMMEL.BAS Program Details with HP BASIC
--Function to Return Range Code-1870
1880
1890
1900
1910
1920
1930
1940
1950
. .
. .
2060
2070
2080
2090
2100
2110
2120
2130
2140
2150
2160
DEF FNRange(Ivalue)
INTEGER Rcode
SELECT ABS(Ivalue)
CASE >1.E-1
Rcode=-20
CASE >1.E-2
Rcode=-19
CASE >1.E-3
Rcode=-18
. . . . . . . .
. . . . . . . .
CASE >1.E-9
Rcode=-12
CASE ELSE
Rcode=-11
END SELECT
IF Rcode=-20 THEN
RETURN -20
ELSE
RETURN Rcode-1
END IF
FNEND
June 2003
E5270 Series Sample Program
• Find a current range code corresponding to
the specified value.
• If it is the highest range (1A range), its code
is returned.
• Otherwise, a range code for one upper
range is returned.
Page 16