Circuit For Tracing Transistor Parameters Via a Microprocessor

GroupDIY Audio Forum

Help Support GroupDIY Audio Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

Matador

Well-known member
Joined
Feb 25, 2011
Messages
3,300
Location
Bay Area, California
I've been toying with the idea of the following circuit:

lpc_buffer.jpg


I have a micro controller with 10 DAC outputs and 7 ADC inputs, that operate with bipolar supplies and can supply between -2.5V and 2.5V.  I would like to use these to make a small program to characterize various discrete components like JFET's, BJT's, diodes, etc.

I was thinking that for small currents, I could use 3 DAC outputs as three virtual terminals to drive gate, source, and drain, or base, collector, emitter, and create test programs that either:

a) generated VGS verus IDS plots
b) find IDSS and VP for JFETS
c) find beta, VBEsat and VCE sat for NPN's and PNP's

However the main problems are:

a) that voltage range is not very useful
b) the DAC's poop out after about 2mA of source/sink current, which isn't very useful either
c) there's no way to measure current easily

So the circuit above attempts to address all three points.  It is essentially a tried-and-true headphone power amplifier, with a current sense resistor buried in the feedback loop, and current is measured via a dedicated current sense amplifier.  The circuit can supply approximately +- 14V and source/sink 250mA into a load, and assuming the output transistors are heatsinked properly, can even supply 500mA into a dead short.

I have added a microprocessor controlled relay so that the DUT can be disconnected while the DAC outputs are ramped to zero.  Then the relays are closed and the curves/measurements are taken.

C1 reduces the gain of the system down to 1 at about 100kHz, which is about twice the sampling frequency of the DAC.  I'm thinking that I should also add some capacitance to the output node, as slew rate is not important here:  I want to essentially set up a DC bias condition, then take voltage/current measurements, then change the biases, repeat.

I'm also thinking about adding another ADC to sample the output voltage so I can perform offset trims digitally before the relays close (the DAC's are 12 bit, which means I have about 7mV of output accuracy).

Can anyone see any problems with this approach?
 
You don't need to generate 3 voltages, 2 is enough (unless you want to do dual-gate MOSFETs).
You need to protect the base against excessive current. Most low-level BJT are vulnerable to current >10mA.
The MAX4081 is limited to positive voltages; won't give proper indication for PNP BJT's or P-channel FET's.
Since your voltages are limited by the rails, you could use a simple diff amp to measure the current, probably cheaper than these dedicated chips.
 
abbey road d enfer said:
You don't need to generate 3 voltages, 2 is enough (unless you want to do dual-gate MOSFETs).
You need to protect the base against excessive current. Most low-level BJT are vulnerable to current >10mA.
The MAX4081 is limited to positive voltages; won't give proper indication for PNP BJT's or P-channel FET's.
Since your voltages are limited by the rails, you could use a simple diff amp to measure the current, probably cheaper than these dedicated chips.

Unless I misread the datasheet, the MAX4081 allows bidirectional current sensing, the MAX4080 does not however.  The MAX4081 should output above VREF/2 for source currents, and below VREF/2 for sink currents.

I had also considered just using another ADC channel to read the both sides of the sense resistor, as the ADC chips are (per channel) much cheaper than the sense amplifiers.  All I would need in that case is an opamp attenuator to bring the output swing back in the range of the 2.5v and -2.5v references.

That's a great point for needing only two voltages.  I can always assume a ground or a rail connection and bias from there (depending on the device type).

One thing I don't like about this circuit is that the output swing is limited by the diode connected BJT's pinching off as they approach the rails.  So it only swings up to about 15v with an 18v rail.
 
Matador said:
Unless I misread the datasheet, the MAX4081 allows bidirectional current sensing, the MAX4080 does not however.
My reading is that bi-directional means it will measure source or sink, but the common-mode range is always positive, as is the supply.
I had also considered just using another ADC channel to read the both sides of the sense resistor, as the ADC chips are (per channel) much cheaper than the sense amplifiers.  All I would need in that case is an opamp attenuator to bring the output swing back in the range of the 2.5v and -2.5v references.
Then you would need two attenuators and opamps and probably be better off using these as a diff amp.
That's a great point for needing only two voltages.  I can always assume a ground or a rail connection and bias from there (depending on the device type).
That's not exactly what I meant. You have to remember that voltages are relative, their absolute value is meaningless. So you use one terminal as the reference (most often the emitter or source) and compute the other voltages accordingly.
One thing I don't like about this circuit is that the output swing is limited by the diode connected BJT's pinching off as they approach the rails.  So it only swings up to about 15v with an 18v rail.
You could use power opamps like the TDA2050 (+/-35V) or even the LM3886 (+/-50V).
 
abbey road d enfer said:
My reading is that bi-directional means it will measure source or sink, but the common-mode range is always positive, as is the supply.

Ahh, I finally grok'd what you are saying.  The actual sense resistor connections assume a positive common mode range with respect to the ground pin.  So if the pin is driving -10V this is obviously not in the common mode range! ;)

Actually dual precision difference amplifiers aren't too expensive:  I found the TI INA2134 which would be enough for two channels for $4.  All I would need after it is something to convert back to a unipolar output range and it would accomplish the same thing as the current sense chip.

Thanks for catching that!
 
Hi Matador,
I think the current sensing resistor R3 must be out of feedback loop or it will measure additional current drawn through R8.
You can use simple differential amp circuit to measure voltage at R3.
Change R8 connection at circuit diagram.
 
bezen4uk said:
Hi Matador,
I think the current sensing resistor R3 must be out of feedback loop or it will measure additional current drawn through R8.
You can use simple differential amp circuit to measure voltage at R3.
Change R8 connection at circuit diagram.

I can remove that current in the control software, as I need to sense that side of the resistor so I know what the actual terminal voltage is at the DUT.

There's a chicken and egg problem there:  if the feedback resistor is out of the loop, then I have to correct the DUT voltage due to the voltage drop.  Inside the feedback loop, the op-amp will correct for this voltage drop, but then I have to correct for the current through the feedback path (as you point out).  Since I am sampling this output voltage I'm in a good position to auto-account for the current measurement in software. ;)
 

Latest posts

Back
Top