Semiconductor Energy Gap
Purpose: To measure the size of the energy gap between the valence and conduction bands in germanium
(Ge) and silicon (Si) by measuring the reverse saturation current of diodes over the temperature range
Equipment: Ge diode (1N34A or equivalent) and Si diode (1N4148 or equiv.) in glass tube with
connecting wires, thermocouple and/or solid-state thermometer, beaker, hotplate, stable voltage source,
GPIB-interfaced meters for voltage and current measurement and thermocouple measurement, computer
with GPIB-USB interface.
Theory: The current I through a diode as a function of the voltage V across it follows the relation
where T is the Kelvin temperature, e is 1.6 x 10-19 C, k is Boltzmann's constant, Is is the "reverse
saturation current", and h is a factor called the ideality factor. For a textbook "Shockley theory" diode, h=
1, but for practical diodes, 1 Is is related to the bandgap energy Eg by the equation
Is = A exp(-Eg/hkT)
where A is a material-dependent constant. If we take the natural log of each side of this last equation, we
In Is = In A - (Eg/hk)(1/T)
so that if we measure Is at several temperatures and plot In Is versus 1/T, we can deduce Eg/h from the
slope of that plot. We can determine the factor h by measuring the room temperature diode current at
several different forward voltages that are large enough to satisfy V >> kT/e. For such voltages, Eqn. (1)
can be approximated as
I = Is exp (eV/hkT)
and we can again take natural logs on both sides to get
We can thus determine h from the slope of the In I versus V plot, allowing determination of Eg.
We want to collect data for both Ge and Si diodes. The forward I-V data must be taken individually for
each type of diode, but it should be possible to take the Is, versus temperature for both diodes at the same
time. The reverse saturation current for Si diodes is very small and may be overshadowed by surface
currents in the diode, so it may be difficult to get an accurate Eg measurement for Si.
1. Data Acquisition Programming
Write a Python data acquisition program which can take readings from two (or preferably three) GPIB-
interfaced meters at periodic intervals and store the data to a disk file. (If you use the Lakeshore
thermometer, you will also need to interface to its serial connection). Follow the instructions below to set
up the meters and then prepare a program for collecting data.
We will now use Python's library of instrument-control drivers, Pyvisa, to communicate with the
instruments. See Lab 9 in the Physics 490 Advanced Lab Manual for more details about computer data
You should have a National Instruments GPIB-USB-HS adapter connected to a computer USB port, with
an Agilent 34410A GPIB digital multi-meter connected. Turn the meter, and watch for the address
number flashing by. Get it set to 25. This will be the ammeter.
Now go to the start menu and open a command-promp window. The prompt,
indicates the working directory. Make a subdirectory with your name to store your programs and data:
C:\Users\student> mkdir barack
C:\Users\student> cd barack
As you create Python scripts or data files, put them here.
Then open Python:
(Or, if this doesn't work, C:\Users\student\barack> C:\Anaconda3\python might work.) This should start
Python and give you a ">>>" prompt. With the following commands you can read a DC voltage from the
This should produce an identification string, perhaps one of the following:
(Now you know you got the address right.) Next try
The meter should be in Remote mode and should be displaying this value.
Turn on the KIETHLEY 485 AUTORANGING PICOAMMETER.
And now the other HP/Agilent meter.
near Turn 0 on volts. the AMREL You can PPS-1322 as programmable on DC its GPIB power address supply. is Luckily set to 12. it seems And sign to always it up: boot up at
As of this writing, the AMREL was not in the GPIB daisy chain, and so will be adjusted by hand.
(such use as barak9b.py). notepad to create Enter a the .py lines file. below: Please save to a file which has your name as part of the file name
vge=[ # array for voltage
print("You have five seconds to move the voltage to the next value.")
outfid.write(',') # comma separated variables
2. Forward I-V Measurements at Room Temp.
Set up the circuit in Figure 1 to measure the forward-bias characteristic of one of the diodes (say the
germanium diode). Before wiring, get the two HP/Agilent meters into local mode (turn them off, then
on), turn the AMRES power supply on and make sure the voltage is turned down low - say 0.01 V, which
is the value it boots up to. Then connect all the wires. Make sure the ammeter is set on current, not
volttage. Note: for the HP meter measuring current, the current goes in a terminal marked with a red "I'
and out the black terminal above it.
Measure the forward current at several voltages in the range 0.4 V to 0.75V or so for Si and 0.2V-0.45V
for Ge, keeping the diode current below 20 mA. (At room temperature, kT/e is 0.025V, so voltages of
0.2V or more easily satisfy exp(eV/kT)>>I). The 2000 ohm resistor protects the diode from excessive
To take data using the data-acquisition program, enter
And to see the result, written in the file gefbv.txt, enter
This is a comma-separated variable file that should be readable by Excel or MatLab. Or python, for that
3. Reverse saturation current versus temperature
Now, wire up the reverse bias circuit of Fig. 2 for both diodes together. (Use the picoammeter for Si and
the microvoltmeter for Ge.) In this case, we want the reverse voltage to be a large enough negative value
such that exp(eV/hkT)<<1. We will use a stable voltage source of -5V or 10V. This value of reverse
voltage is high enough so that the reverse current through the diode will be the reverse saturation current.
Connect the meters to the data acquisition computer with GPIB cables (plus a serial cable if using the
Lakeshore thermometer). Start up and do a test run with the data acquisition program.
Place the diode/thermocouple assembly in an ice-water bath in a beaker placed on the hot plate. (Add just
enough ice to get the bath close to °C.) Once you have started taking data, turn on the hotplate to a
moderate heat setting so that the water bath temperature rises about one Kelvin degree every few seconds.
If you are using the thermocouple temperature meter, you will need to calibrate its voltage-output-
versus-temperature transfer function. You can do this by writing down a few pairs of temperature and
temperature-meter output voltage values during the heating.
Continue heating until a temperature of 50 °C is approached, then immediately turn off the hotplate -
not allow the diode temperatures to exceed 50 °C. It is useful to continue taking data as the water bath
cools so that you can assess the uncertainty in your current measurements from the difference between
readings at the same temperature during heating versus those during cooling.
Analysis and Report:
Plot the forward I-V data for each diode in linearized form (In I vs. V) and determine the value of the
ideality factor h and the associated uncertainty. Do not use data points which lie far off a straight-line fit.
(The InI-V curve will usually deviate from a straight line at higher currents due to voltage drops in the
semiconductor region outside the diode junction.)
Plot In Is versus (1/T) for each diode and use the slope and the value of h to determine the energy gap for
each diode and the associated uncertainty.
Compare with accepted (room temperature) energy gap values of 0.66 eV for Ge and 1.12 eV for Si. Also,
state your ideality factors and their uncertainties.
These solutions may offer step-by-step problem-solving explanations or good writing examples that include modern styles of formatting and construction
of bibliographies out of text citations and references. Students may use these solutions for personal skill-building and practice.
Unethical use is strictly forbidden.