I am currently working on some hobby project. I have a 24V 2A DC motor that I want to drive. I designed a board with a designated IC on it to drive the motor, it wirked just fine. But then I thought that I would try to design my own H-bridge motor driver so that I am not bound by the parameters of the IC (current limit of 4A, it gets overheated easily, etc.)

So my question is: is this a good H-bridge design?

enter image description here

I am not looking for a 3 pin design, so my question is not regarding that. I want a 4 pin H-bridge, where I can control each pin with an MCU. I have seen some designs over the internet, nearly all of them agree on the N-channel MOSFET on the low side, and the P-channel MOSFET on the high side, with the flyback diodes parallel to each MOSFET.

But what about the BJT? Is it a good idea to drive the P-MOSFET through BJTs? Let's assume an STM32 3.3V MCU as the control unit, the pins that you can see here are directly connected to the GPIO pins of the MCU. Are the resistors of the correct value?

As I understand, R15 and R42 are "used" as current limiting resistors, but there is not so much current flowing that way, so small values like a 100ohm or 1k is okay?

R31 and R40 are pull down resistors, they need a high value like 10k, 100k to have only a small current there?

R17 and R22 are pull-up resistors when the BJT is off, same large values as the previous pull-down resistors?

I guess that R1 and R39 also limit the current, but I have no idea what is a good size there.

What else should I pay attention to? I guess I should choose P channel transistors that can handle high currents and high voltages, also the 24V gate voltage. N channel MOSFETs to be able to handle large currents. And what about the BJT? How do I choose that one?

So yeah, alltogether my question is: is this a good circuit, will it work, how to choose resistor sizes and BJT?


Based on the comments that I got (thank you very much), I re-designed the schematic:

enter image description here

The low-side PWM was a good suggestion, I did not think about that. I reduced the pull-down resistor sizes to make the switching faster. Based on an other very useful comment, I introduced a 15V zener diode to both sides to protect my MOSFET's gate from over-voltage. I also replaced the BJT with the exact same N-MOSFET switch that I use on the low side.

I did not get the boost-capacitor thing though :(

What do you think now?

  • 1
    \$\begingroup\$ I think the more common solution is to use all Nch with enable on top for direction and PWM on the bottom with the boost cap for gate voltage on top for greater speeds from lower Rdson and thus R/L ratios and lower losses. But deadtime depends on this time constant as well \$\endgroup\$ Jun 21 at 16:44
  • 1
    \$\begingroup\$ Are the P-FETs ok with 24 V + margin on the gate? I would put a zener across it. \$\endgroup\$
    – winny
    Jun 21 at 16:59
  • 1
    \$\begingroup\$ If one use 2N3904 for "digital" command, use a schematic with 2 anti-saturation diodes. Will be faster commutation. \$\endgroup\$
    – user288518
    Jun 21 at 18:46
  • 1
    \$\begingroup\$ Well. Simulation done. Diodes seems not necessary. Sorry. \$\endgroup\$
    – user288518
    Jun 21 at 19:08
  • 1
    \$\begingroup\$ Anyway, be aware that there an input capacitor of the MosFet that is about 1500pF. So commutation will be slowest. My evaluation of 45us in time. R17 & R22 may be lower. (1k) \$\endgroup\$
    – user288518
    Jun 21 at 19:22

But what about the BJT? Is it a good idea to drive the P-MOSFET through BJTs?

It is fine, it doesn't matter what you use to drive the h-bridge mosfets as much as the time it takes to change the gate voltage.

There are two problems:

  1. Long switching times
  2. The high and the low side being on at the same time

Long switching times dissipate heat in the mosfet. If the mosfet is fully off it has really low current/high resistance, and there is little power dissipation. If the mosfet is fully on it has high current/low resisance and more power dissipation, but form many fets the Rdson is lower than 1Ω or in the mΩ range, so large currents will still dissipate heats that the package can handle.

The problem when the gate voltage is somewhere in the middle, and the resistance in the mosfet is equal to the load. At that point the fet will dissipate the same half of the power in the load (and is the peak power point). This can only happen for a short time, which will depend on a large variety of factors, the current, resistance of the fet and the gate capacitance and the other capacitances of the fet if switching fast.

The other thing you want to avoid is the high side and low side being on at the same time, this can be more difficult with using p-ch and n-ch at the same time (I usually use all n-ch, on the high side it becomes difficult to turn on the gate, but there are many ways to overcome this problem).

At the end of the day a spice simulation is best to verify that the fets are not burning up.


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.