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