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’s plenty of explanations out there on the layers and how they are made. 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 is how a MOSFET turns ON and OFF.

How that resistance changes, depends on if it is a 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 the VGSth is a negative value. We can use the data sheet from an IRF5305 as an example.


Its VGSth is specified as 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 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: subtract the GATE voltage value from 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 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 SOURCE and GATE again. The SOURCE is still at 5 volts. However, now the GATE is at ground which means it is 0V. If take the GATE voltage and subtract 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 an tutorial on when to use an n-channel and p-channel MOSFET. A great 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 of they work on “negative voltages.”

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


Your questions, comments, and even corrections are encouraged and very much appreciated! However. I have zero-tolerance for inappropriate or harassing comments. I try to reply to everyone... -James

Leave a comment

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

  1. Hello sir we are trying to make H bridge inverter using 4 N channel MOSFET. But when we triggered the gate pulses simultaneously only negative voltage output waveform is fine. But in positive voltage the voltage is too short than Negative voltage. Is there any need to change the positive side N channel MOSFETS to P channel?
    Thank you.

  2. Hello,
    I have an TP0610K P Channel Mosfet –> VGS – 1 to – 3

    And i get on a laptop motherboard (black probe on gnd)
    Source -> 19V
    Drain -> 19V
    Gate -> 3.3V

    The gate shouldn’t have 19v- 3v ?

    Sorry for a newbie question 🙂

    • The threshold value given, VGS, is the minimum needed to activate the FET. In the absolute maximum section of the datasheet, you’ll see the maximum value of Gate – Source. 3V – 19V = -16V.

  3. Nice article, but the phrase below seems backwards to me:

    “The SOURCE is still at 5 volts. However, now the GATE is at ground which means it is 0V. If you subtract the GATE from the SOURCE you get: 0V – 5V = -5V. ”

    If I subtract GATE (0V) FROM the SOURCE (5V), shouldn’t that be read as “5V-0V”, not the other way around?

  4. 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

  5. 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!

  6. 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.

  7. 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

  8. 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).