3.3v Logic to drive P-Channel Mosfet

To anyone who wants to know...

I have a surefire way to drive P-Channel MOSFETs for miscellaneous 5v devices. This driver will support a maximum of 13amps, but the voltage drop is going to be somewhat significant. I'd recommend not using this for more than 3-4 amps of draw but it works with 300 WS2812b LEDs.

You will need the following:

  • FQP27P06 (Enhancement type P-MOSFET)
  • 2N3904 (NPN-BJT)
  • 2x 4.7k Ohm, 1x 330 Ohm resistors
  • A Arduino using 3.3v logic

Using this schematic, you can create your own driver.

What inspired me to do this is the 27P06 only draws around 500nA of current when the gate is pulled high. On the other hand, the WS2812b light strip drew about 60mA when idle. Here is how it works.

We use the BJT as not only an inverter so high is on and low is off (which a lot of library's that drive LEDs need), but also to source voltage from the same place that the MOSFET get's its power from. Using a common ground, we can switch the BJT on and off with the Arduino since it is current driven. Mind you, we don't need much. And since we have a common ground, we will also get our digital signal through to the LEDs. (Side note, you will need two BJT's to drive the data signal to the LEDs, which I will post in the next post)

The other 4.7k resistor ties the Arduino's output to ground in case the output floats so we don't waste energy. And finally, the 330 ohm resistor limits current draw to just 7mA. The SAMD21 that is on my Nano only supports a draw of up to 10mA so we want to stay under that.

Note: in the diagram, the load is the light bulb. Replace the light bulb with the device that needs lots of current :slight_smile:

Be sure to check out my link to the 1-Way 5v Signal Driver!

It looks like you have discovered the "High Side Mosfet Switch"
Incidentally, the FQP27P06 is not considered as a logic level (5 volt) device because the RDS(on) is not quoted below 10 volts.

Yes, you would be correct. It hasnt reached saturation... but as long as you stay under my posted draw, you shouldn't have a terribly large losses. For 2-3 amps, it is adequate.

Drain shows between 11 and 12 amps at 5 volts and goes down logarithmically as voltage goes down. Even tho Vgs On is at 10 volts, one could argue that it is saturated at 7 volts because there is almost no increase in drain current past 7 volts according to the diagram :slight_smile:

I mean you could use a limit function to find the current difference between the drain currents at 7 and 10 volts on the gate, but it would be in the magnitude of milliamperes.

Your Mosfet has VCC as power supply and your Arduino has VDD. A user can use for VCC what ever he/she wants and not just 5V you have drawn. If you feed Arduino from a separate power source 7-12V, it is a good source for fet, too.

LMI1:
Your Mosfet has VCC as power supply and your Arduino has VDD. A user can use for VCC what ever he/she wants and not just 5V you have drawn. If you feed Arduino from a separate power source 7-12V, it is a good source for fet, too.

Indeed. I used Vcc to refer to the positive 5 volts from the power supply and Vdd to refer or the 3.3v supply from the arduino :slight_smile: