Knowledge of the operating characteristics of any device are essential to gain insight about it. This project would help you plot curves of diodes, NPN-type bipolar junction transistors and n-type MOSFETs on your laptop, at home!
For those who don't know what characteristic curves are : characteristic curves are graphs that show the relationship between current through and voltage across the two terminals of a device. For a 3 terminal device, this graph is plotted for a varying parameter of the third terminal. For 2 terminal devices like diodes, resistors, LEDs etc, the characteristic show the relationship between voltage across the device terminals and the current flowing through the device. For 3 terminal device, where the 3rd terminal acts as a control pin or sorts, the voltage-current relationship is also dependent on the state of the 3rd terminal and therefore the characteristics would have to include that as well.
A Semiconductor curve tracer is a device that automates the curve plotting process for devices such as diodes, BJTs, MOSFETs. Dedicated curve tracers are usually expensive and not affordable for enthusiasts. An easy to operate device capable of obtaining the I-V characteristics of basic electronic devices would be highly beneficial, especially for students, hobbyists that are into electronics.
To make this project a basic course in Electronics and concepts like op amps , PWM, charge pumps,voltage regulators, some coding on any microcontroller would be required. If you have these skills, Congratulations, you are good to go!!
For references on the topics above, some links I found helpful:
Step 1: Understanding the Hardware
The tracer would be plugged into a laptop and the DUT (device under test) into the slots provided in the board. Then, the characteristic curve would be displayed on the laptop.
I used MSP430G2553 as my microcontroller but once you understand the approach to the design, any controller can be used.
To do this the given approach was followed.
● In order to obtain values to device current at different values of device voltage, we need an increasing signal (something like Ramp signal) . To obtain sufficient number of points for plotting the curve, we choose to probe device for 100 different values of device voltage. Thus we need a 7-bit ramp signal for the same. This is obtained by generating PWM and passing it through a low pass filter.
● Since we need to plot the device characteristics at different values of base current in BJT and different values of gate voltage in case of MOSFETs we need a staircase signal to be generated alongside the ramp signal. Limiting the system capability we choose to plot 8 curves for different values of base current/gate voltage. Thus we need an 8-level or 3-bit staircase waveform. This is obtained by generating PWM and passing it through a low pass filter.
● The important point to note here is that we need the entire ramp signal to repeat for every step in the 8-level staircase signal thus the frequency of the ramp signal should be exactly 8 times more than that of staircase signal and they should be time synchronized. This is achieved in the coding of the PWM generation.
● The collector/drain/anode of the DUT is probed to obtain the signal to be fed as X-Axis into the oscilloscope / into ADC of the microcontroller after voltage divider circuit.
● A current sensing resistor is placed in series with the DUT, which is followed by a differential amplifier to obtain the signal that can be fed into oscilloscope as Y-Axis/ into ADC of the microcontroller after voltage divider circuit.
● After this, the ADC transfers the values into the UART registers to be transmitted to the PC device and these values are plotted using a python script.
You can now proceed with making your circuit.
Step 2: Making the Hardware
The next and very important step is actually making the hardware.
Since the hardware is complex, I would suggest PCB fabrication. But if you have the courage, you can go for breadboard also.
The board has 5V supply, 3.3V for the MSP, +12V and -12V for the op amp. 3.3V and +/-12V are generated from 5V using regulator LM1117 and XL6009 (its module is available, I made it from discrete components though) and a charge pump respectively.
The data from UART to USB needs a conversion device. I have used CH340G.
Next step would be to create Schematic and Board files. I have used EAGLE CAD as my tool.
The files are uploaded for your reference.
Step 3: Writing the Codes
Made the Hardware? Tested voltage polarities at all points?
If yes, lets code now!
I have used CCS for coding my MSP, because of I am comfortable with these platforms.
To display the graph I have used Python as my platform.
The microcontroller peripherals used are:
· Timer_A (16 bit) in compare mode to generate PWM.
· ADC10 (10 bit) to input values.
· UART to transmit the data.
The code files are provided for your convenience.
Step 4: How to Use It?
Congratulations! All that remains is the working of the tracer.
In case of a new curve tracer, its trim pot of 50k ohms would have to be set.
This can be done by changing the potentiometer position and observing the graph of the IC-VCE of a BJT. The position at which the lowest curve (for IB=0) would align with X-Axis, this would be the accurate position of the trim pot.
· Plug in the Semiconductor Curve Tracer in the USB port of the PC. A red LED will light up, indicating that the board has been powered up.
· If it is a BJT /diode device whose curves are to be plotted, do not connect the jumper JP1. But if it is a MOSFET, connect header.
· Go to command prompt
· Run the python script
· Enter the number of terminals of the DUT.
· Wait as the program runs.
· Graph has been plotted.