Question about transistor, MOSFET and Characteristic Curvetracer

Hi,

What causes the change in 'behaviour' of a small signal MOSFET N-CH BS170 from A to B, please see attached pictures. All off a sudden gate current increases. The transistor behaves like a resistor, actually the Ig=f(Ugs) curve shows the 'curve' of the gate resistor which is applied in the curvetracer. Picture A shows the correct behaviour, a couple of uA's for a MOSFET (the zig-zag is caused by the 16-bit ADC precision of the ct I am using). What ticks me, is the fact that the bugger does not seam to be completely dead (I fried a couple before completely, LOL1).


Background:

I am in the middle of writing the program for my self build curvetracer, so I am testing back and forth not paying enough attention to the specimen I am torturing, LOL2.

Two possible causes:

1) Invalid voltage beyond specification on the socket (DUT). This is possible because I play with GUI elements and repeatedly forgot to remove the DUT from the socket prior of doing so. So, basically there is a possibility I applied up-to -10V to the gate while +10V where present at Uds (with low gate/source resistors). A scenario likely never happen when you pay attention and use the program properly, LOL3

2) Electrostatic charge. Well, I live in a small town in the BC mountains and we have very dry weather in the moment. I eventually get zipped while picking up a coffee from the kitchen. I have to admit, that there's a good chance I touched the pins of the transistor while being 'charged', LOL4


OK, I need to know what's the highest possibility that destroyed the BS170 to make 100% sure my program will not fry components when completed.


PS.

The project is open source...

The author of the hardware, VB.net Windows front-end software and CPP Arduino FW is Dr. U. Borgmann (http://diy.ucborgmann.de/index.php/en/audio-messtechnik-2/characteristic-curve-recorder). I am re-writing and converting the front-end software to Python 3/Qt to make it platform independent. Screenshot attached...

Screen Shot 2023-04-05 at 2.02.52 PM.png


Ps2:
If someone is interested of helping me to master the huge task of writing a proper procedure for matching transistors, please PM me. Knowledge required Python 3 / QT5(+)...

Thanks, folks...
 

Attachments

  • BS170_a.png
    BS170_a.png
    60.9 KB · Views: 100
  • BS170_b.png
    BS170_b.png
    43.9 KB · Views: 105
The maximum power dissipation is 350 mW at 25 deg C. You are operating the device at 3W. The device is probably very hot so the power dissipation should be de-rated.

Your gate current plots look noisy. The family of curves is also noisy. What instrument are you using to measure voltage and current?

For these TO-92 parts, I usually try to have max current of 20mA. The part will likely not be operated above 20mA in a linear circuit. In a switching circuit, different deal.

The 500mA max current is probably at a very low voltage, <1v.
 
  • Like
Reactions: tubekiddo
The DUT is pulsed while measuring, it does not get hot at all. The gate current swing is 1 uA (micro not milli) for the correct working DUT. The current is measured by the voltage drop over a resistor by two channels of a 16 bit ADC (with +-2V full scale, 0.0001% error). The other example, with the 6mA gate current is from the faulty component (curve b) while curve a represents a normal operating BS170, uA gate currents.

You didn’t read my post, or didn’t understand my question and jump on conclusions…
 
Last edited:
well, taking another (still alive, fresh) Scapegoat seems as best way
Did that, fore-sure. Still curious what is defect in the faulty transistor and what might has caused it to make sure it isn’t the program.

BS170 is difficult to measure because of its 2V VGSth and the nanosecond switching capability. It basically goes from 0-100 in no time. That makes it difficult to measure at low Ids. And the gate current of a MOSFET is basically not existent either. So the program uses some sophisticated routines to avoid thermal stress, which would screw up measurement results (and possibly damages components).
I am almost certain I fried it while testing the GUI elements and forgot it in the DUT socket. No protection in this scenario…
 
Last edited: