I have been looking around trying to design a simple but working H-Bridge for an RC car motor (12V and 2~3A).

This bridge will be driven from a microcontroller and need to be fast to support PWM. So based on my readings, Power MOSFET are the best choice when it comes to fast switching and low resistance. So I am going to buy P and N channel power MOSFETs that are rated at 24V+ and 6A+, Logic Level, have low RDSon, and fast switching. Is there anything else that I should consider?

Ok so on to the H-bridge design: Since my MCU will be running at 5V, there will be a problem with turning the P-channel MOSFET off, since Vgs needs to be at 12V+ to totally turn off. I see that many websites are solving this problem by using an NPN transistor to drive the P-channel FET. I know this should work, however, the slow switching speed of the BJT will dominate my fast switching FET!

So why not use an N-channel FET to drive the P-channel FET like what I have in this design?


Is this bad or wrong design? Is there any problem that I am not seeing?

Also, will the reversed diode built in these FET be enough to handle the noise which is caused by stopping (or maybe reversing) the inductive load of my motor? Or do I still need to have a real flyback diodes to protect the circuit?

To explain the schematic:

  • Q3 & Q6 are the low side N-channel transistors
  • Q1 & Q4 are the high side P-channel transistors, and Q2 & Q5 are the N-channel transistors that drive those P-channel (pull the voltage down to GND).
  • R2 & R4 are pull up resistors to keep the P-channel turned off.
  • R1 & R3 are current limiters to protect the MCU, (not sure if they are needed with MOSFETs, since they don't draw much current!)
  • PWM 1 & 2 are coming from a 5V MCU.
  • Vcc is 12V
  • 4
    \$\begingroup\$ Your post would have been shorter without your apology for the long post, so that the apology wouldn't be necessary :-) \$\endgroup\$
    – stevenvh
    Commented Sep 14, 2012 at 14:27
  • \$\begingroup\$ Is the 5V from your controller enough to switch the power MOSfets really ON? And the 10k base resistors seem very high to me if you want to PWM! \$\endgroup\$ Commented Sep 14, 2012 at 14:50
  • \$\begingroup\$ @Wouter van Ooijen, I really don't know, i am new to all of this and trying make a simple circuit and avoid using H-Bridge ICs since most need so many other discreet parts specially if need something to support 6A+. For the resistor as suggested below i am going to use 100Ω instead. \$\endgroup\$ Commented Sep 14, 2012 at 15:23
  • \$\begingroup\$ @FAD you asked whether this circuit is OK, but you did not mention type FETs you want to use. So all I can do is point out a potential problem, it is up to you to check the datasheet of the N FETs to check that they really turn on at the ~5V ouput by your microcontroller. \$\endgroup\$ Commented Sep 14, 2012 at 15:53
  • \$\begingroup\$ @Wouter van Ooijen, almost all of the logic level N FET that I have looked at do turn on at or even below 5v, some go as low as 2.7v but with some limitations. \$\endgroup\$ Commented Sep 16, 2012 at 4:56

6 Answers 6


I'm not sure why you think BJTs are significantly slower than power MOSFETs; that's certainly not an inherent characteristic. But there's nothing wrong with using FETs if that's what you prefer.

And MOSFET gates do indeed need significant amounts of current, especially if you want to switch them quickly, to charge and discharge the gate capacitance — sometimes up to a few amps! Your 10K gate resistors are going to significantly slow down your transitions. Normally, you'd use resistors of just 100Ω or so in series with the gates, for stability.

If you really want fast switching, you should use special-purpose gate-driver ICs between the PWM output of the MCU and the power MOSFETs. For example, International Rectifier has a wide range of driver chips, and there are versions that handle the details of the high-side drive for the P-channel FETs for you.


How fast do you want the FETs to switch? Each time one switches on or off, it's going to dissipate a pulse of energy during the transition, and the shorter you can make this, the better. This pulse, multiplied by the PWM cycle frequency, is one component of the average power the FET needs to dissipate — often the dominant component. Other components include the on-state power (ID2 × RDS(ON) multiplied by the PWM duty cycle) and any energy dumped into the body diode in the off state.

One simple way to model the switching losses is to assume that the instantaneous power is roughly a triangular waveform whose peak is (VCC/2)×(ID/2) and whose base is equal to the transition time TRISE or TFALL. The area of these two triangles is the total switching energy dissipated during each full PWM cycle: (TRISE + TFALL) × VCC × ID / 8. Multiply this by the PWM cycle frequency to get the average switching-loss power.

The main thing that dominates the rise and fall times is how fast you can move the gate charge on and off the gate of the MOSFET. A typical medium-size MOSFET might have a total gate charge on the order of 50-100 nC. If you want to move that charge in, say, 1 µs, you need a gate driver capable of at least 50-100 mA. If you want it to switch twice as fast, you need twice the current.

If we plug in all the numbers for your design, we get: 12V × 3A × 2µs / 8 × 32kHz = 0.288 W (per MOSFET). If we assume RDS(ON) of 20mΩ and a duty cycle of 50%, then the I2R losses will be 3A2 × 0.02Ω × 0.5 = 90 mW (again, per MOSFET). Together, the two active FETs at any given moment are going to be dissipating about 2/3 watt of power because of the switching.

Ultimately, it's a tradeoff between how efficient you want the circuit to be and how much effort you want to put into optimizing it.

  • \$\begingroup\$ Thanks for the reply, - Correct me if i am wrong, but based on what I saw in datasheets, the what is considered as fast switching BJTs have switching values in micro seconds, while mosfets are in 10s of nano seconds (there could be some that i haven't seen which might be as fast). FOr the resistors I will use 100Ω thanks. Last, what is considered as fast switching that might need gate-drivers? i can change the PWM speed in my mcu from the default 32K to lower values like 10k or 1k. \$\endgroup\$ Commented Sep 14, 2012 at 15:13
  • 1
    \$\begingroup\$ I don't know what BJTs you were looking at. Even the jellybean 2N3904 has rise/fall/delay times on the order of 35-50 ns. \$\endgroup\$
    – Dave Tweed
    Commented Sep 14, 2012 at 19:50
  • \$\begingroup\$ Can you suggest other fast BJTs that can handle ~6A? \$\endgroup\$ Commented Sep 16, 2012 at 4:43
  • 2
    \$\begingroup\$ In the context of your original question, you were objecting to using an NPN transistor to drive the PFET. I'm just saying something like a 2N3904 would be fine for that. \$\endgroup\$
    – Dave Tweed
    Commented Sep 16, 2012 at 11:08
  • 1
    \$\begingroup\$ "on-state power: 0.5 × ID^2 × RDS(ON)" Why the 0.5? \$\endgroup\$
    – m.Alin
    Commented Oct 3, 2013 at 14:55

It is extremely bad practice to tie MOSFET gates together without some resistance or impedance between them. Q5 and Q3 are tied together without any separation, as well as Q2 and Q6.

If you end up driving these FETs hard (which I suspect you'll end up doing), the gates can end up ringing with each other, causing nasty high-frequency (MHz) spurious turn-on and turn-off transitions. It's best to split the needed gate resistance equally and put one resistor in series with each gate. Even a few ohms is enough. Or, you could put a ferrite bead on one of the two gates.

  • \$\begingroup\$ Thanks for the advice, I will put small resistors in series with Q2, Q3, Q5 and Q6. And I assume R1 and R3 will not be needed anymore. \$\endgroup\$ Commented Sep 16, 2012 at 4:49
  • \$\begingroup\$ Correct. Whatever gate resistor you intended to use, duplicate it and put one in series with each gate. \$\endgroup\$ Commented Sep 16, 2012 at 15:14
  • \$\begingroup\$ This advice is actually wrong for the case of an H-bridge. With an H-bridge, you don't want additional resistors; instead you want to make sure that you control for shoot-through by turning off the high end before turning on the low end by some small amount of time (order of a microsecond.) \$\endgroup\$
    – Jon Watte
    Commented Oct 21, 2012 at 21:39
  • \$\begingroup\$ @JonWatte The high-side and low-side timing is critical to control shoot-through, I agree, but paralleled MOSFETs always need separation to avoid ringing with each other. \$\endgroup\$ Commented Oct 22, 2012 at 0:15
  • 2
    \$\begingroup\$ Why the downvote? My point about ringing is valid regardless if you design in shoot-through or not. If the gates are ringing with each other, they're behaving in spite of your control input (the gate drive signal) which is bad news regardless of what you're controlling! \$\endgroup\$ Commented Oct 23, 2012 at 16:18

The pull-up resistors for the gate of the P-channel FETs is on the order of two magnitudes too large. I blew a low-frequency (< 1 kHz) H-bridge like this running with a 220 ohm pull-up; I'm now at 100 Ohms and it works OK. The problem is that this causes significant parasitic current through the pull-up when turning on the P-channel, for a loss of a full watt! Also, the pull-up resistor needs to be beefy -- I paralleled some 1/4 watts, and I run the PWM pretty low, like 300 Hz.

The reason this matters is that you need to push a lot of current into the gate for a very short while to turn the MOSFET entirely on / off. If you leave it in the "in between" state, resistance will be high enough that it heats up the device and pretty quickly lets the magic smoke out.

Also, the gate resistor for the PWM controls is way too high. It, too, needs to be on the order of 100 ohms or less to drive it fast enough. If you run PWM at kilohertz or faster, you need even more, so at that point, go for a driver IC.

  • \$\begingroup\$ =1 its good that someone realises that the circuit is rubbish even by hobby standards. \$\endgroup\$
    – Autistic
    Commented Jan 30, 2016 at 8:10

I have some concern with the fact that you have both sides of the bridge connected to the same control signals. With the additional delay imposed by your N-FET buffer/inverters you could be having both the upper and lower FETs on one side of the H-Bridge on at the same time for short periods of time. This can cause significant current to shoot through the half bridge leg and possibly even damage your power FETs.

I would provide separate connections from your MCU for all four of the FET drive signals. This way you can design for there to be a dead time between switching off a FET before switching on the other FET on the same side of the bridge.

  • \$\begingroup\$ I already have this in mind and planing to introduce a small delay from the mcu to set both inputs off (GND) before reversing the direction. \$\endgroup\$ Commented Sep 14, 2012 at 15:01

R1 and R3 must be 80 or 100 ohm.. and you need to add pull down 1kohm resistance right after R1 and R3 to pull it to 0 whenever its off to make sure its completly off..and like you have been told if you use mosfet driver it will be better and safer for the controller..and the rest of the circuit is ok.. another thing is to check mosfets datasheet to make sure that mosfet time delay on and off (in nano seconds) to check if it will work with your pwm desired frequency ..


For simplicity, I use a driver with 4 MosFet switches. See specifications for example of IR2113. 3.3 V compatible.

  • 2
    \$\begingroup\$ IR2113 does not interface well to the top side P-MOSFETs OP used nine years ago. \$\endgroup\$
    – winny
    Commented Jun 11, 2021 at 9:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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