Based on this answer here in StackExchange and the Motorola article it cites, I've designed a dual h-bridge motor driver with push-pull transistors to switch the FETs faster, layed out a PCB in KiCad and built it.

The restrictions were to use only N-Channel FETs found in an old computer motherboard, and I had no gate drivers (actually I've bought a couple IR2110s, but they will take a long time to arrive). H Bridge with push-pull

When I tested this first version with a toy RC helicopter motor, it ran for a couple times, but eventually half of each h-bridge (there were 2 of them) got shorted (lots of smoke and all). Everything ran on 2 li-ion cells (7.4V) for VCC and a third small phone cell (3.7V) in series for a 11.1V total in Vdrive.

I used the multimeter to check and looks like IMZ1A couldn't pull the high side FETs down for some reason. Initially they could, but then they stopped working. The 2N7002s were all fine. Tried replacing both the shorted power FETs and IMZ1As for new ones, but the same problem happened again.

Tired of burning stuff, but still trying to prove the point a simple N-channel only bridge could be designed, I made this new circuit: Damn-simple h-bridge

This one actually worked and is working till now, despite being very simple. The question is: why the first circuit didn't work? Is there anything wrong with the design?

EDIT: Acquired some waveforms for the last circuit:
This one under no load condition Waveform no load

And this with the motor. Measured armature resistance was about 2.2R and inductance about 240uH. Waveform motor

  • \$\begingroup\$ @DKNguyen didn't know about shoot-through. I thought the only thing that would happen when sharing inputs like that was the motor braking with both low. R4 and R12 are from the Motorola design, kept them because I guessed they're there to lower drain-source voltage in the FET, when using a higher Vdrive. \$\endgroup\$ Commented Jul 22, 2019 at 18:59
  • \$\begingroup\$ Transistor turn on and turn off times rarely match each other, and even if they did, there are variances between individual transistors. \$\endgroup\$
    – DKNguyen
    Commented Jul 22, 2019 at 19:00
  • \$\begingroup\$ From where is Vdrive generated? Where is the dual? I only see an H-bridge. DKNguyens answer below should cover it, but to be able to tell for sure we would need to see gate drive oscillograms. \$\endgroup\$
    – winny
    Commented Jul 22, 2019 at 19:31
  • \$\begingroup\$ @winny sorry if I wasn't clear, but Vdrive comes from a 3rd battery cell in series with the main supply. The other H-bridge is exactly the same, so I omitted it to keep the schematics clean. \$\endgroup\$ Commented Jul 22, 2019 at 19:36
  • \$\begingroup\$ I'm not actually sure why your bottom circuit works TBH. Because it shouldn't due to the high-side gate drive issue. My guess is that it's probably not working as well as it should. Those top MOSFETs should be turning themselves off whenever you try to turn them on. \$\endgroup\$
    – DKNguyen
    Commented Jul 22, 2019 at 19:37

1 Answer 1


Both your circuits suffer from shoot-through issues. This is what happens when you do not give each transistor an independent control signal. The problem is may be worse in your top circuit since the high-side gate driver is much more effective than the low-side gate driver.

On the other hand, I don't know what R4 and R12 are supposed to be for since they just get in the way and could be making your high-side gate driver work worse than the lower one. Either, way the result is the same: worse shoot-through.

You stated in a now-deleted reply that R4/R12 was to limit current through Q3. This is not actually a problem because when Q3 is on, the current in of one branch is already limited by R3. In the other branch, the current that flows through the base-emitter of Q5B (which also flows through Q3) would blow out both Q5B and Q3...except it doesn't because Q5A is off. Get rid of them.

Finally, this is a much more fundamental issue that both your circuits suffer from which may require a re-design thus making all the previous points moot anyways: Your gate driver does not drive the high-side MOSFET gates with a voltage relative to the source. It drives them with a voltage relative to the ground, but the high-side MOSFETs cannot see the ground, nor do they care what it is. All they care about is the voltage between their gate-source terminals.

Think about it, suppose your gate driver turn on and current was flowing through the motor. The output node of the half-bridge connecting to the positive supply would rise in voltage towards Vcc. Thus, the source voltage for the high-side MOSFET would also rise. If your gate voltage is being referenced to ground, then your Vgs applied to the MOSFET rapidly decreases turning the MOSFET off (or worse, partially on). This is why you need floating gate drivers for the high-side MOSFETs and this is what fundamentally makes all N-channel H-bridges (and half-bridges) them more complex.

The simplest approach is to probably add a bootstrap diode and capacitor to your high-side diodes but this comes at the limitation of being unable to run 100% duty cycle. Every time a low-side MOSFET turns on, the bootstrap capacitor on that side will be connected to ground to allow it to charge up (refresh) through the diode. When the low-side MOSFET opens, the capacitor will float up to the high-side MOSFET's source voltage and the diode prevents the bootstrap capacitor from draining. Thus, the low-side MOSFET has to turn on periodically (usually through normal operation) to refresh the bootstrap capacitor which is acting as the floating supply for the high-side MOSFET gates. enter image description here


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.