# What is the best way to control a 12 V, 5 A load with a 3.3 V microcontroller?

I have a 12 V heating element which draws up to 5 A that I want to control from an ESP-12 microcontroller. I have tried to find a MOSFET for driving it, but all seem to need at least 5 V on the gate to allow current to flow.

Is a MOSFET the right component for this, or should I use a BJT? Also, how should I determine whether or not I will need to put a heatsink on whichever component I decide to use for driving this?

EDIT: After talking to some others, I found the Si2333DDS MOSFET.

If I'm reading correctly, I should be able to drive this directly from my microcontroller with no heatsink, since RDS(on) is only ~0.025 Ω at 3.3 V. Is this correct?

Yes, the MOSFET you specified will have an Rds of 0.015 Ω at 3.3 Vgs.

The power dissipated will be: R · I2 = 0.015 · 52 = 0.375 W.

With no heatsink, the temperature rise from Junction to Ambient will be: 0.375 W · 245 °C/W = 91 °C.

With a 6 cm2 copper PWB heatsink, the temperature rise from Junction to Ambient will be: 0.375 W · 104 °C/W = 39 °C.

You need to know your maximum ambient temperature and how hot is acceptable to you. At 70 °C you can burn yourself, so I like to limit heatsink temperature to 60 °C. So, no heatsink is not acceptable to me. 6 cm2 is marginal, I would increase to 9 cm2.

If you are severly constrained on space, you may have to accept a higher temperature. But, you really should stay under 100 °C, or your reliability could be compromised.

• Thank you very much! Do you have a link to one of those heatsinks? Commented Aug 29, 2022 at 2:44
• These calculations are assuming that this is a copper layer on a PWB. This part doesn't really have a way to attach a heatsink otherwise. See if you can find a part in a TO-220 package, like this: STB60NF06L Commented Aug 29, 2022 at 2:50

You've picked a P-channel MOSFET so it cannot be driven directly from the ESP-32 assuming your 12V GND and 3.3V GND are common. It's also only rated for 12V Vds which is not a good idea for a 12V source since even a tiny stray inductance will cause the maximum rating to be exceeded when it switches. Also keep in mind that the Rds(on) rating is for 25°C die temperature and if the transistor gets hot that Rds(on) might be 20%-40% higher (see the typical curve on page 3 of your datasheet).

You can, however drive a P or N-channel MOSFET that can withstand 12V Vgs (preferably one with a 20V rating) with a few BJTs like this:

simulate this circuit – Schematic created using CircuitLab

A MOSFET such as the AOD21357 is inexpensive, and in an easy-to-use SMT package and has an Rds(on) of < 0.008$$\\Omega\$$ @25°C.

There are also gate driver ICs that will work from your 3.3V such as this one.

You need something like a IGBT gate driver or a gate driver IC and a power MOSFET along with a voltage source which can deliver 5A current. You generally control the gate driver with PWM or some other protocol. The gate driver IC may include a level shifter which shifts the voltage up.

This is a example of gate driver IC:

https://www.infineon.com/cms/en/product/power/gate-driver-ics/