Skip to main content
6 min read

I Picked a 3A MOSFET for a 2A Load and It Caught Fire

A P-channel MOSFET rated for 3A that overheated at 2A — because the Rds(on) spec was at Vgs=4.5V but the circuit only drove 3.3V. How reading the actual datasheet curves caught the mistake.

debuggingmosfetpowercomponent-selection
I Picked a 3A MOSFET for a 2A Load and It Caught Fire cover image

I smelled it before I saw it. That unmistakable scent of hot epoxy and regret wafting up from a SOT-23 package that was doing its best impression of a space heater. The board was a sensor hub — an STM32G0, a handful of I2C sensors, and a 2A solenoid valve for a fluid dosing system. The solenoid ran off the 3.3V rail through a P-channel MOSFET high-side switch, controlled by a GPIO pin.

The MOSFET was a Vishay Si2301CDS. Rated for 3.1A continuous drain current. I was switching 2A. Plenty of margin, right?

The design

The circuit was textbook. P-FET source tied to the 3.3V rail, drain to the solenoid, gate driven directly by an STM32G0 GPIO. When the GPIO goes low, the gate is at 0V, the source is at 3.3V, and VGS=03.3=3.3VV_{GS} = 0 - 3.3 = -3.3\,\text{V}. The FET turns on. When the GPIO goes high (3.3V), VGS=0VV_{GS} = 0\,\text{V}, FET turns off. Simple.

I picked the Si2301CDS because it's cheap (~$0.16 in volume), it's everywhere, it's in a SOT-23-3, and it's rated for 3.1A. The load is 2A. That's 65% of the rated current. Should be fine.

The symptom

On first power-up, the solenoid clicked on and off as expected. The firmware was happy. But after about thirty seconds of continuous on-time, I touched the FET and yanked my finger back. It was easily above 90°C. Not "warm" — genuinely hot. In a SOT-23 package with minimal copper pour.

The solenoid still worked. The 3.3V rail was a bit droopy under load — maybe 3.18V — but nothing catastrophic. Yet. Give it another few minutes in a 45°C enclosure and this thing was going to either desolder itself or burn the trace.

Wrong turn #1: More copper

Obviously a thermal issue, right? I reworked the layout to give the FET more copper on the drain pad. Added thermal vias. The junction temperature dropped maybe 10°C. Still way too hot.

Wrong turn #2: "It's within rating"

I kept staring at the parametric spec: 3.1A continuous drain current. My load was 2A. The power dissipation rating was 860mW at TA=25°CT_A = 25\text{°C}. How much power could this thing possibly be dissipating?

That's the question I should have asked on day one. I didn't. I just assumed that a 3A-rated FET switching 2A would have trivial losses.

Asking the right question

Eventually I asked my AI agent — the one with SheetsData tools configured — "Why is my Si2301CDS overheating at 2A with a 3.3V gate drive?"

The agent's first move was to pull the part details. What came back included this line:

SpecValue
Rds On (Max) @ Id, Vgs112 mΩ @ 2.8A, 4.5V
Drive Voltage (Max Rds On, Min Rds On)2.5V, 4.5V
Power Dissipation (Max)860 mW (TAT_A)

And there it was. The headline RDS(ON)R_{DS(ON)} of 112 mΩ is specified at VGS=4.5VV_{GS} = -4.5\,\text{V}. My circuit drives VGS=3.3VV_{GS} = -3.3\,\text{V}. That's a completely different operating point.

The "Drive Voltage" field is the clue most people miss. It shows two numbers: 2.5V (the voltage where max RDS(ON)R_{DS(ON)} is specified) and 4.5V (the voltage where the min/typical RDS(ON)R_{DS(ON)} is specified). The 112 mΩ everyone sees in the parametric table is the good number — at 4.5V. The RDS(ON)R_{DS(ON)} at 2.5V is a separate, much larger spec buried in the full datasheet's electrical characteristics table.

For the Si2301CDS, the datasheet's electrical characteristics show:

ConditionRDS(ON)R_{DS(ON)} max
VGS=4.5VV_{GS} = -4.5\,\text{V}, ID=2.8AI_D = -2.8\,\text{A}112 mΩ
VGS=2.5VV_{GS} = -2.5\,\text{V}, ID=1.0AI_D = -1.0\,\text{A}220 mΩ

At VGS=3.3VV_{GS} = -3.3\,\text{V} — my actual operating point — the RDS(ON)R_{DS(ON)} is somewhere between these two values. Interpolating the curve, it's roughly 160–200 mΩ. Not 112 mΩ.

The math that explains the smoke

Power dissipation in a MOSFET used as a DC switch:

P=ID2×RDS(ON)P = I_D^2 \times R_{DS(ON)}

With the headline spec (112 mΩ at 4.5V):

P=22×0.112=0.448WP = 2^2 \times 0.112 = 0.448\,\text{W}

That's within the 860 mW package limit. Looks safe. But with the actual RDS(ON)R_{DS(ON)} at VGS=3.3VV_{GS} = -3.3\,\text{V} (worst case ~200 mΩ):

P=22×0.200=0.800WP = 2^2 \times 0.200 = 0.800\,\text{W}

That's 93% of the 860 mW absolute maximum — at room temperature. The SOT-23 thermal resistance (RθJAR_{\theta JA}) is around 150°C/W for the Si2301. At 0.8W:

ΔT=0.8×150=120°C\Delta T = 0.8 \times 150 = 120\,\text{°C}

Junction temperature at TA=25°CT_A = 25\text{°C}: 145°C. The absolute max is 150°C. And here's the vicious part: RDS(ON)R_{DS(ON)} increases with temperature. At 125°C junction temperature, the on-resistance is typically 1.5–2x the 25°C value. So the real dissipation is even higher than 0.8W, which pushes the temperature higher, which increases RDS(ON)R_{DS(ON)} further. Thermal runaway in a SOT-23.

In a 45°C enclosure — which is what this product ships into — the math doesn't just fail. It fails spectacularly.

Finding the right part

I asked the agent to find a P-channel MOSFET that actually specifies RDS(ON)R_{DS(ON)} at low gate voltages. It searched for alternatives and pulled up the Alpha & Omega AO3401A — same SOT-23 footprint, and critically, it specs RDS(ON)R_{DS(ON)} at three gate voltage levels:

ConditionRDS(ON)R_{DS(ON)} max
VGS=10VV_{GS} = -10\,\text{V}, ID=4.0AI_D = -4.0\,\text{A}50 mΩ
VGS=4.5VV_{GS} = -4.5\,\text{V}, ID=3.5AI_D = -3.5\,\text{A}60 mΩ
VGS=2.5VV_{GS} = -2.5\,\text{V}85 mΩ

That last line is the important one. The AO3401A guarantees a maximum RDS(ON)R_{DS(ON)} of 85 mΩ at VGS=2.5VV_{GS} = -2.5\,\text{V} — a lower gate voltage than my circuit even provides. It's explicitly designed for logic-level gate drive.

When the agent analyzed the RDS(ON)R_{DS(ON)} vs VGSV_{GS} characteristic curve from the AO3401A's datasheet, the numbers got even better:

VGSV_{GS}RDS(ON)R_{DS(ON)} typ (25°C)RDS(ON)R_{DS(ON)} typ (125°C)
-2.5 V~79 mΩ~107 mΩ
-3.3 V~55 mΩ~76 mΩ
-4.5 V~45 mΩ~65 mΩ

At my operating point (VGS=3.3VV_{GS} = -3.3\,\text{V}, ID=2AI_D = -2\,\text{A}):

P=22×0.055=0.22WP = 2^2 \times 0.055 = 0.22\,\text{W}

The AO3401A also has a higher power dissipation rating — 1.4W vs 860mW. So 0.22W is only 16% of the thermal budget, even before adding copper. Even at 125°C junction temperature with the worst-case curve:

P=22×0.076=0.30WP = 2^2 \times 0.076 = 0.30\,\text{W}

Still only 21% of the package limit. No thermal runaway. No smoke. The junction temperature rise at 0.22W with RθJA110°C/WR_{\theta JA} \approx 110\text{°C/W} is about 24°C. Barely warm to the touch.

Side-by-side comparison

SpecSi2301CDSAO3401A
VDSV_{DS} max-20 V-30 V
IDI_D continuous-3.1 A-4.0 A
RDS(ON)R_{DS(ON)} max @ VGS=4.5VV_{GS}=-4.5\,\text{V}112 mΩ60 mΩ
RDS(ON)R_{DS(ON)} max @ VGS=2.5VV_{GS}=-2.5\,\text{V}220 mΩ85 mΩ
VGS(th)V_{GS(th)} max-1.0 V-1.3 V
PDP_D (TA=25°CT_A=25\text{°C})860 mW1.4 W
PackageSOT-23-3SOT-23-3
Price (qty 1k)~$0.19~$0.21

Same footprint. Two cents more. The AO3401A has lower RDS(ON)R_{DS(ON)} at every gate voltage, higher current rating, higher power dissipation, and higher VDSV_{DS} headroom. The Si2301 wins on absolutely nothing in a 3.3V-driven application.

The fix

Swapped the Si2301CDS for the AO3401A. Same footprint — no board respin required. The solenoid switches cleanly, the FET barely gets warm (measured ~38°C at TA=25°CT_A = 25\text{°C} after five minutes of continuous on-time), and the 3.3V rail sags to 3.24V under load instead of 3.18V because there's less drop across the switch.

Total fix time once I understood the problem: about ten minutes of soldering. Total time wasted before that: a day and a half.

The lesson in three sentences

The headline RDS(ON)R_{DS(ON)} on a MOSFET parametric listing is almost always specified at the highest recommended gate voltage — not your gate voltage. If you're driving a P-FET from a 3.3V GPIO, you need the RDS(ON)R_{DS(ON)} at VGS=3.3VV_{GS} = -3.3\,\text{V}, which can be 2–3x worse than the number you see on DigiKey. A part that says "logic-level" explicitly specs RDS(ON)R_{DS(ON)} at low VGSV_{GS} (typically 2.5V or even 1.8V) — if the datasheet doesn't spec it at your gate voltage, pick a different FET.

Check the RDS(ON)R_{DS(ON)} at your actual gate voltage. Not the headline number. The actual one.

I Picked a 3A MOSFET for a 2A Load and It Caught Fire | SheetsData