P-Channel MOSFET Tutorial with only Positive Voltages

From the mailbag (or chat… bag?)

Positive Voltages with a P-Channel MOSFET Tutorial

On every page of my blog, you might notice a chat window. If I’m not busy, we can chat in real-time. If not, the messages come to me by email. Here’s one I got from Matt the other day:

Let’s talk a bit about how (and why) you would use a P-Channel MOSFET. Matt, and he’s not the only one, is probably asking this question based on the “myth” that P-Channel MOSFETs require “negative voltage” supplies.

Keep reading for a how to use only positive voltage in this p-channel MOSFET tutorial.

N-Channel and P-Channel MOSFET Tutorial Video

First, for some background, check out this AddOhms video tutorial about MOSFETs, I already made.

What’s different?

n-channel and p-channel mosfet tutorial (schematics)

MOSFET Symbols from Wikipedia

The actual construction of the two types of MOSFETs differ. There are plenty contraction explanations out there on the layers. Instead, let’s focus on how you use them in a circuit.

VGS Threshold

The first thing we need to know about using MOSFETs is one of their critical properties: VGSth. Which stands for Voltage Threshold from Gate to Source. As the voltage difference between those two pins changes, so will the resistance from the DRAIN to SOURCE pins. This threshold is how a MOSFET turns ON and OFF.

How that resistance changes, depends on if it is an N-Channel or P-Channel MOSFET.

P-Channel MOSFET Tutorial and Explanation

Look at the VGSth for a P-Channel MOSFET. You might notice that VGSth is a negative value. We can use the data sheet from an IRF5305 as an example.


Its VGSth is specified as a range: -2.0V to -4.0V. So, how could you possibly use this MOSFET with an Arduino, LaunchPad, Raspberry Pi or any other microcontroller? Do you really have to generate negative voltages?

It’s about the difference

This spec is where the myth of the “negative voltage” comes in: Since the data sheet says negative, clearly, you need negative voltage to work. And data sheets, never lie (except when they do…).

Let’s literally read what the specification is saying. “Voltage from Gate to Source of negative four volts.” Using different words, you might read it as “GATE voltage value minus the SOURCE voltage value.”

Look at the voltages in this “high-side switch” configuration:

PChannel MOSFET with 5V Example

The GATE is now at 5 volts. The SOURCE is also at 5 volts. That means the Vgs is 5V – 5V = 0V. So the Vgs, in this case, is 0 volts. This voltage means the MOSFET is turned off, or an open.

Now, this is the same circuit, but the GATE is connected to ground instead of 5 volts.

PChannel MOSFET with 0V

Let’s look at the SOURCE and GATE again. The SOURCE is still at 5 volts. However, now the GATE is at ground which means it is 0V. If you take the GATE voltage minus the SOURCE, you get 0V – 5V = -5V. This will turn the MOSFET on.

See what just happened there? We got a “negative” voltage using only positive voltage supplies…

Why use N-Channel over P-Channel

We would need to dedicate a tutorial on when to use an n-channel and p-channel MOSFET. An excellent use for P-Channel is in a circuit where your load’s voltage is the same as your logic’s voltage levels. For example, if you’re trying to turn on a 5-volt relay with an Arduino. The current necessary for the relay coil is too high for an I/O pin, but the coil needs 5V to work. In this case, use a P-Channel MOSFET to turn the relay on from the Arduino’s I/O pin.

If your load voltage is higher, like 12 or 24V, then you might want to use an N-Channel MOSFET in a “low side” configuration.


Using a P-Channel with positive voltages is easy when connected to the circuit correctly. We just have to get over the myth that they work with “negative voltages.”

Question: What’s the most creative MOSFET circuit have you seen? You can leave a comment by clicking here.


Long comments, URLs, and code tend to get flagged for spam moderation. No need to resubmit.

ALL comments submitted with fake or throw-away services are deleted, regardless of content.

Don't be a dweeb.

Leave a comment

87 thoughts on “P-Channel MOSFET Tutorial with only Positive Voltages

  1. If I have a Source =12V (P mosfet) Drain – Load – Negative power so Vgs just 8 to 10v (because 10-12=-2 or 8-12=-4v ) I will be not connected the Gate to 0v or Ground, Do I do correctly? thank so much

  2. I have a problem with Mosfet P channel when I assembly load on Drain and connect Source to Vcc make 0v at Gate :result fail . when I simulate a mosfet P channel (IRF9540N) with a Load on drain and run project : Result fail. Why? please tell me how to use Load in case P channel and bias of Vgs ( in N channel case is very easy) thank a lot

      • 12v or 6v on board and 5v in proteus simulation , how ever I try bias the Gate by 2 Resistors 0ne is 2k and other is 10k to fix voltage at G is 2V but proteus still get note: error and fail. I have seen more twice your video but when I simulate P channel mosfet it is fault. could you make a video about P channel mosfet and how to assembly Load (as a PNP bjt) and calculating parameters with Load : battery, Cell,(heavy load). finally thank you so much!

  3. Hello everyone!

    I would like to make a switch to use a screen. My aim is to use a screen with Raspberry Pi. When the Raspberry Pi is booting, the screen is turned off. After that it will work. I need a mosfet to use it. As you know GPIO ports on Raspberry Pi have 3.3V. When 3.3V exists on the GATE, the screen will be turned off. When 3.3V doesn’t exist, the screen will work. How can I do this?

    P.S The screen needs 5V and 0.8A.

    Please help me. Thank you in advance.

  4. Hi, i try to use pchannel mosfet on highside with 28v rail. And if i use npn with the base connected to my arduino. When logic is high, npn will drain everything to ground and the misfet vgs will be -28 but the problem is misfet maximum vgs is +-20v
    What should i use then? If u can give a drawing will be better to understand. Thank you

  5. I am still confused about when to use N or P. Every example I see on the net is using N-channel by switching the 0V, which leads to load. Is it safe to say that N-channel is always switching ground, can we bring positive voltage to be switched?

    In one of the comments you say that we should use N-channel MOSFET if our switching voltage is larger than the command voltage. I have similar scenario like that, I have a command ouput which when 1 (5V Arduino) should allow 12V to the load. The load in question is another input on another device, which needs 10+VDC to become high. I have no control of the load’s ground (0V).

    I did not realize that Vgs threshold is actually the difference between gate and source voltage, I though it is the minimum voltage that needs to be brought to gate (disregarding the negative sign). For this reason I have bought a lot of these MOSFETs (http://pdf1.alldatasheet.com/datasheet-pdf/view/123973/TSC/TSM3401CX.html), but as it appears, this transistor keeps source-drain switch always closed, no matter if high or low signal is brought to gate. Due to your explanation it is logical to behave like this, since the voltage difference is always larger than the threshold.

    So, what kind of solution do I need to make this work? When high signal (5VDC) on Gate, switch should allow 12VDC to load, when low, switch opens? Since my load is another input, required current is not large (20-30mA max).