
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?
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:
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.
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.
Conclusion
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.
12v or 6v on board and 5v in Proteus simulation
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
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
What is the Gate Voltage you are using?
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!
I don’t know why it is not working for you.
What if im make H bridge with all N Channel connected to arduino ? it is possible ?
I don’t have a lot of experience designing a discrete H-Bridge. Except for school, I’ve always used an IC.
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.
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
Sounds like you need a voltage divider.
Very helpful. i got a PA102FDG from a PC motherboard and i was wondering how to use it for high side switching. Thank you
Just like I showed in this tutorial.
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).
Thanks,
Goran
If your current is that low, you might consider a NPN transistor instead. If you stick with a MOSFET, you need a “logic-level” MOSFET like the FQP30N06L.
Thanks – this really helped me use a p channel mosfet in my circuit protection design.
What I don’t understand is that you show the MOSFET is turned on with either 5 volts or 0 volts on input.
it turns on with 0V and turns off with 5V
Using a AO3401 with VGSth -0.9 gate to 3.3 volt Arduino 550Ω to gate 5 volt to source, will there be smoke?
The specified value is the minimum necessary to turn it on. The absolute maximum for the part is 12V