Introduction: Semiconductor Curve Tracer With the Analog Discovery 2

About: I've always loved to figure out how things work, so hacking and making just fits for me. I'm a husband, a father, an EOD technician, an automation engineer at Schweitzer Engineering Laboratories, and a proud g…

Semiconductor curve tracers are lab devices that are used to analyze performance characteristics of semiconductor devices like diodes and transistors. They trace current/voltage values on a single plot, independent of time, which is something that can be difficult to do on a normal oscilloscope. However, using the Analog Discovery 2 and Waveforms software, setting up a curve tracer is a relatively simple matter. Using the analyzed data, you can then match your devices by performance characteristics for the best possible performance of your circuit.

In the lab at WSU we still have a bunch of old Tektronix 575's floating around. They are well over 50 years old, but still work like a dream, even though they use vacuum tubes. At the time semiconductor technology was not good enough to build a curve tracer with semiconductor-based devices. Tubes were the best available, but they take several minutes to warm up so you can use it. Here's a link to an EEVblog forum post with a really cool interior pic of a 575 in operation, glowing tubes and all!

Note that I will not be going into why you may need to find the i-v curve of a semiconductor device. Chances are that you're in some electronics course and need to do this for an assignment, so your instructor or professor should have already covered all of that information that you promptly forgot. Yeah, I'm a student too. For a short refresher on i-v curves, go to this electronics-tutorials.ws web page.

For this Instructable you will need:

- 1X 1N4001 diode (Vishay datasheet)

- 1X each NPN and PNP BJT. I'll be using a 2N3904 (Fairchild datasheet) and 2N3906 (Fairchild datasheet).

- 1X 100kΩ resistor

- 1X 100Ω resistor

-Analog Discovery 2*

-Waveforms 2015 software

- a computer with USB port to run the software

*You may also use the original Analog Discovery or the Electronics Explorer Board with Waveforms 2015. There are some slight differences in functionality between the AD1, AD2, and EEBoard, but nothing that will prevent you from following along if you have one of the other tools.

If you haven't had a chance to get familiar with the Analog Discovery or Waveforms, check out this quick start I'ble collection.

Step 1: Diode I-V Curve

We will need to produce a voltage sweep to test a diode. If you haven't seen it yet, click here for a quick tutorial on the waveform generator.

The waveform generator tool has a sweep function, but it is a frequency sweep, which we don't want to use here. Instead, we can use either the "Simple" or "Basic" options to program our waveform. Whichever you choose, set the following parameters: triangle wave type, 400 Hz frequency, 2.5 V amplitude, 2.5 V offset, 50% symmetry, and 270° phase.

Simple settings should look like this:

Basic settings should look like this:

The circuit schematic is as follows:

Make the connections between the circuit and AD2 as shown. Start the waveform generator, then the oscilloscope. You should see something like this:

It doesn't yet look like a diode i-v curve, but just a couple of simple manipulations will fix that.

First we need to add a Math channel to the plot. Our two channels are both currently displaying voltage, but we need to get current on there as well. Since channel 1 is across the resistor, we'll use that.

Click on the button above the channel 1 settings box on the right side. Select "Custom". A new "Math 1" channel will appear at the bottom of the list.

In the Math 1 box, click on at the bottom to open the math function script editor.

Make the edits as shown by typing "C1/100" in the script box (capitalization matters here. "c1" ≠ "C1"). Change the units to "A", then click "OK".

The value for M1 is pretty small and hard to see on the plot, but don't make adjustments just yet. Go up to the top bar and click , then select "Add XY". A small, second plot window will open on the right side of the screen.

First, go up to the "X" and "Y" selection boxes at the top. "C1" is set for "X" and "C2" is set for "Y" by default. Change "X" to "C2" (the voltage drop across the diode) and set "Y" to "M1" (the current through the diode).

Now we need to adjust the channel settings on the right. Set C2 to -400 mV offset and 100 mV/div range. Set M1 to -15 mA offset and 5 mA/div range. The settings boxes should look like this:

The XY plot window should display this:

You can't use cursors on, or directly pull data from, the XY plot, but you can use the X and Y cursors on the regular plot to pull specific point data from the plot. Simply click on "View" again at the top and select the appropriate X or Y cursor tool.

You can also export the XY plot image as well as a file with the raw data. Click "File" and select "Export". At the top left of the window that opens you can select which data you want to export.

You can select between the image of the data or the raw data itself with the tabs . Once you have the type selected, you can save the file to the hard drive, or simply . Do what you want with the data from there.

Step 2: Transistor I-V Curve

Transistor curves are a bit more complex than diode curves. The amount of current passing between a BJT collector and emitter is dependent on the current level present at the base. By providing a stepped voltage at the base and doing a full voltage sweep for each base voltage step at the collector, we can capture a family of several characteristic I-V curves. This same principle applies to finding the I-V curves of a MOSFET.

This time we'll need to use both Waveform Generator channels since we need to generate both stepped and swept voltages at the same time. We'll use channel 1 for the steps and channel 2 for the sweep. Make sure that both channels are checked in the drop down menu to turn on both channels.

Channel 1 will need to be a custom waveform, so select "Custom" from the type menu, and then click "New". The custom waveform window will open. Click on the "Values" tab at the top and set values 1-5 as 0, 1, 2, 3, 4, and 5 respectively. Uncheck the normalize box at the bottom left, click "Generate" to the right of that, and then click the "Normalize" icon at the top left of the plot window. You should get the following:

Click "OK" once you're done to send it to the waveform generator grid. Set the frequency to 40 Hz, amplitude to 2.5 V, and offset to 2.5 V. You should see this:

Now for channel 2. We will need to sweep the whole range of the AD2 voltage output in the time channel 1 is generating each step voltage. "Simple" should be selected by default for channel 2, so set the parameters on the left side as triangle for type, 240 Hz for frequency, 2.5 V for the amplitude and offset, and then the phase to 270°. You should see this:

We need to synchronize the two channels together since waveform generator channels have a tendency to drift out of phase with each other if you don't. This is due to the accumulation of digital rounding errors in the software over relatively long periods of time, but if synchronized together and forced to repeat after each cycle, the accumulated errors are zeroed out and the signals stay together.

Above channel 1 you'll see a box that should say "No synchronization" by default. Click that and select "Synchronized". Several more boxes will appear to the right of that box. Set run to 25 ms and uncheck the repeat trigger box. It should look like this:

The circuit schematic for a NPN transistor is as follows:

Make the connections as shown and then start the waveform generator and then the oscilloscope.

Once again, the scope image is not very helpful, but we can easily fix that. Add a Math channel as before, dividing C1 by 100.

Select "Add XY" from the "View" menu. Set C2 as the X axis and M1 as the Y axis, then adjust the values for C2 and M1 in the settings boxes as shown:

The XY plot should show a really nice family of I-V curves for this particular BJT. If the values seem a bit jumpy or faint, adjust the time value on the scope plot to 5 ms/div or higher to capture more data points on the XY plot.

To capture the family of curves for a PNP type BJT, make the following changes. We need to generate negative voltages, so in the waveform generator, change the sign of the offset and amplitude for both channels from positive to negative.

In the oscilloscope, change the sign of the offset values for both C2 and M1 from negative to positive.

The circuit is the same, just swap the PNP for the NPN, pin for pin. The voltages are taken care of with the waveform channels.

Turn on the tools and set the XY plot to show C2 and M1 as before. You should see this:

You can save and export the data just as you did before with the diode in the previous step.

Step 3: That's It!

As you can see, the Analog Discovery 2 once again demonstrates both its simplicity and versatility. Curve tracers are very useful for anybody, professional or hobbyist, that deals with non-linear, semiconductor devices.

As always, thanks for reading. If you have questions, please ask them in the comments below, though PMs are always welcome as well. You just never know when someone else has the same question and that way we can all learn and help each other get better. Have fun building!

Also, please check out the Digilent blog where I contribute from time to time.