MOSFET – Why Am I Cooking MOSFETs?

arduinoesdheatmosfet

I've made a very simple MOSFET LED driver that uses the PWM of an Arduino Nano to switch a MOSFET which controls the power for about 16 meters of LED strip.

I am using STP16NF06 MOSFETs.

I am controlling RGB LEDs, so I use three MOSFETs one for each colour and when all 16 meters of LED strip is running I'm drawing about 9.5 amperes.

9.5 A/ 3 channels = 3.17 A maximum load each.

The MOSFET has a fully on resistance of 0.8 Ω, so my heat should be my I2R loss of

3.17 amperes^2 * 0.08 ohms = 0.8 watts

Datasheet says I get 62.5 °C of heat per watt, maximum operating temperature is 175 °C and expected ambient temperature is less than 50 °C

175 °C - (0.8 W * 62.5 °C/W) + 50 °C = 75 °C for margin of error

I am running these MOSFETs without a heat sink, and I have left it running all night on a program that just cycles red green blue white non stop and it didn't overheat. I am expecting this circuit to be able to run 16+ hrs per day.

I am using a 12 V powersupply for the LEDs and a 5 V control signal from the Arduino, so it shouldn't be possible for me to exceed the drain gate voltage of 60 V or the gate source voltage of 20 V.

After I was playing with it by my desk in my airconditioned office today I found that I couldn't turn the red channel off as I could earlier in the day. And measuring gate to drain with no power connected I found 400 Ω on the red channel and unmeasurably high resistance on the green and blue channels.

This is the schematic I'm working with. It's the same thing just repeated three times and the 5 V is a PWM signal from the Arduino and the single LED without a resistor is just a stand in for the LED strip which has resistors and a solid setup that I didn't feel I needed to model.

This is the schematic I'm working with

I think it failed after I plugged the Arduino in and out of its pin headers about 50 times though I'm not sure what significance that has as the Arduino still works.

Enter image description here

So given that it worked for a few days including one day of high load, my questions:

  1. Could hotswapping the Arduino in and out of this circuit somehow damage the MOSFETs, but not the Arduino?

  2. Could ESD somehow be the culprit here? My desk is a resin coated wood or laminated wood. It should be noted that the source of all three MOSFETs is the common GND.

  3. I don't have a fancy soldering iron, and I have no idea if it goes above 300 °C. However, I used lead solder and I spent as little time as possible on each pin and I would solder pin one of the first MOSFET and then pin one of the second MOSFET, etc, not doing all pins from one chip consecutively and if too much solder heat was the issue why wouldn't that have created the issue immediately? Why has it popped up now?

  4. Is there something I have missed or an oversight in my calculations?

Best Answer

Your problem is the gate drive voltage. If you look at the datasheet for the STP16NF06, you'll see that the 0.08 Ω Rdson only applies for Vgs = 10 V, and you're driving it with only (a bit under) 5 V, so the resistance is much higher.

Specifically, we can look at Figure 6 (Transfer Characteristics), which shows the behavior as Vgs varies. At Vgs = 4.75 V and Vds = 15 V, Id = 6 A, so Rds = 15 V / 6 A = 2.5 Ω. (It may not actually be quite that bad, due to some nonlinearities, but it's still more than you can tolerate

ESD could also be a problem: the gates of MOSFETs are very sensitive, and there's no reason that the Arduino (whose microcontroller has ESD protection diodes) would also necessarily be affected.

I'd suggest getting a MOSFET with a low enough threshold voltage to be fully on at 4.5 V. You can even get MOSFETs that incorporate ESD protection on their gate.