The below given circuit works fine, I am switching 12V voltage using a microcontroller GPIO.

P-CHANNEL MOSFET (load connected between Drain and Ground):

  • When the microcontroller output is LOW, the transistor is OFF and the gate of the P MOSFET is HIGH (12V). This means the P MOSFET is OFF.

  • When the output of the microcontroller is HIGH, the transistor is turned ON and pulls the gate of the MOSFET LOW. This turns the MOSFET ON and current will flow through the load.

How can I improve the circuit? Can I eliminate the transistor (2N3904) shown in the schematic?

Do I need to use N channel MOSFET, by any chance?

Also I am using P channel MOSFET which has Max. Drain-Source Voltage of -12V (?). If switching Voltage is increased to 15V, can it still work?

enter image description here

  • 1
    \$\begingroup\$ "The below given circuit works fine" Don't fix what ain't broken \$\endgroup\$ – JIm Dearden May 7 '17 at 19:38
  • \$\begingroup\$ How would you possibly get the voltage in the cutoff range without the transistor? \$\endgroup\$ – Ignacio Vazquez-Abrams May 7 '17 at 19:38
  • \$\begingroup\$ @JImDearden What if the voltage goes up, will the transistor still switch the voltage? I am using MOSFET of rating Vgs = -12V (Max) \$\endgroup\$ – RS System May 7 '17 at 19:39
  • \$\begingroup\$ The basic circuit is fine - select a mosfet that will do what you want or add a resistor between the collector and gate to keep the gate voltage under -12V. \$\endgroup\$ – JIm Dearden May 7 '17 at 19:44
  • 1
    \$\begingroup\$ Ah - as this is an automotive application you'll need to either use a higher voltage part and/or provide suitable protection as per Sperho's comment further down. \$\endgroup\$ – Finbarr May 7 '17 at 20:33

You could replace the BJT (2N3904) with a small N-channel MOSFET (eg. MMBT7002) and lose the base resistor.

If you can connect the load between the +12 and MOSFET you could replace both transistors with a logic-level (!) N-channel power MOSFET.

If you continue to use the shown circuit make sure your P-channel MOSFET is rated for +12 plus whatever transients might occur on the +12V line. It would be easy to blow out the gate on that part. It can be protected in a bulletproof fashion by adding a Zener plus a resistor, or a divider, depending on how dirty your +12 is and how lucky you feel. If it's an automotive "12V", use the zener. Automotive (and similar) electrical systems should withstand brief transients that are in the +300V~-100V range (see, for example, SAE J1113).

Edit: Looking at your MOSFET, I have two comments- first the absolute maximum Vgs is +/-8V so you are already in forbidden territory where failures are likely even without transients. Secondly, that is a bitty little MOSFET with very little thermal mass and not much power dissipation ability. Your 10K resistor will cause it to switch "off" fairly slowly, and the temperature of the die will jump up by maybe a degree C or two in the 10usec or so it takes to switch, which is a bit stressful on the part. A larger MOSFET, capable of tens of amperes, might be wise.

enter image description here

Edit: Where the zener goes:


simulate this circuit – Schematic created using CircuitLab

The MOSFET I suggested has +/-20V Vgs so you can use a 15V zener and a 1K resistor for R2. For other types (especially if Vgs(max) is < 15V) you'll have to work the numbers out.

  • \$\begingroup\$ Yes, the 12V for switching will be from automotive source(Motorcycle Battery), so that's why while charging the voltage will go upto 14.5V and switching of LEDs which is connected at Output will be fast and as you mentioned It will be slow. But If the load current is 500mA will be there be any thermal issue? I understand the issue with using MOSFET,I mentioned in question. Which one should I use? You mentioned Vgs should be greater than +/-12V and what about the Vds ? What should be the range? \$\endgroup\$ – RS System May 7 '17 at 20:20
  • \$\begingroup\$ Ideally Vds should be 100V or greater, but 60V will probably work okay. Use a zener + resistor to protect the gate. Consider using a TO220 MOSFET and maybe reducing the 10K to 4.7K. \$\endgroup\$ – Spehro Pefhany May 7 '17 at 20:23
  • \$\begingroup\$ I have two MOSFET with +60V Vds and another with -60V Vds? Which one to use? What really is the difference? \$\endgroup\$ – RS System May 7 '17 at 20:57
  • \$\begingroup\$ One is P channel and one is N channel. The difference is really important- as important as the difference between debit and credit. The differences are too much to cover in this answer. \$\endgroup\$ – Spehro Pefhany May 7 '17 at 20:58
  • \$\begingroup\$ Oh! I understand now. I require P channel, obviously. Got confused. Okay, So I choose this MOSFET : farnell.com/datasheets/… as my load current won't exceed 500mA. Is it fine? I will add 15V zener and 4.7k resistor between gate and source. Also Keep R4 as 10k or change to 4.7K? Please suggest! \$\endgroup\$ – RS System May 7 '17 at 21:27

I'd recommend using a logic-level N-MOSFET instead of the BJT, and looking for a complementary P-N MOSFET pair in a single package in order to achieve a higher integration.

High-side switch from TTL

This part (DMC3028LSDXQ) consists of a MOSFET pair rated up to +30/-30 VDS and +20/-20 VGS, with similar RDS(on) and compatible current ratings. It's automotive qualified.


No, you cannot remove the transistor. It provides level translation from 5v to the 12v needed to keep the mosfet turned off. The gpio cannot pull the line to 12V so the mosfet would never turn off.

No, you cannot push this to 15V. If your mosfet gate voltage max is 12V, then trying to pull it higher can cause issues.

You could change the circuit completely by using a N Channel mosfet as a low side driver. Depending on the current needs of your load, you could get away with any common n-fet. The gpio could turn it on at 5V which should be enough for a 2 or 3 amps. Any more and you need a logic level mosfet that handles your load at your gate voltage.

Since you say 500 mA max, then a common IRF5x0 would work fine at 5V VGS. This means a bare minimum circuit of mosfet plus a weak pull down resistor from gate to ground.


simulate this circuit – Schematic created using CircuitLab

  • \$\begingroup\$ The schematic you have shown switch only Ground. The load is permanently connected to Voltage, hence it won't work in my case. My load is connected to ground permanently and upon getting voltage is works. It's vice-versa. \$\endgroup\$ – RS System May 8 '17 at 6:07
  • \$\begingroup\$ @RSSystem hence changing the circuit completely. Cutting out the low side will work just fine. You never gave us information on your load. \$\endgroup\$ – Passerby May 8 '17 at 6:24
  • \$\begingroup\$ My bad! I should have, can you please edit you answer based on recent information \$\endgroup\$ – RS System May 8 '17 at 6:35
  • \$\begingroup\$ @RSSystem This circuit won't work for you if the load is permanently connected to ground (which is often the case in automotive applications), go with Spehro's or Enric's answers instead. \$\endgroup\$ – Finbarr May 8 '17 at 8:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.