Something odd is happening in a h-bridge design I've made.



The part numbers in the picture are wrong, sorry. The n-channel mosfets (the bottom 3) are all 2N7002Ps, and the P-channel mosfets are BSS84CTs. Both have >40v rating, and are logic level. Also, the +5v tag is wrong, it's just a generic rail that I'm injecting power in from.

The bottom n-ch mosfet's gate runs down to an I/O on a microcontroller (to act like an enable), and the two main gate wires go to an inverter, so that neither of them are active at the same time, and so I can control this h-bridge using only 2 pins. This driver is just running a small ultrasonic transducer, so there's not much load at all.

Everything works well at 3.3v on the +5v. The transducer is powered normally, everything "functions within acceptable parameters" as Data would say. There is no heat emitted from any of the mosfets. Unfortunately, I need a higher voltage for my application. As soon as I put the voltage to 12v (still half of what I need), all the mosfets loose their smoke and glow quite nicely for a few seconds. Also, they invariably short their gates to +24v, which also seems to toast my $12 ARM micro on the board.

Any assistance to why the heck this is happening would be greatly appreciated.


2 Answers 2


Look at your gate drives. You're using 3.3 volts, right?

So when you provide 12 volts to the bridge, and drive either side "high" you're only applying 3.3 volts. The p-type gate is seeing -8.7 volts, so it's on, and the n-type is seeing 3.3 volts, so it's on, too. This is called "shoot-through". And yes, this is pretty much guaranteed to let the smoke out.

What you need is a level shifter on your gate drives to get the gate levels to go from ground to the rail. A simple n-type with a pullup resistor may work OK if your switching frequencies are low enough. Otherwise you need a dedicated circuit. As an example, the Maxim MAX442x gate drivers http://datasheets.maximintegrated.com/en/ds/MAX4426-MAX4428.pdf will do what you want, but there are lots of others out there.

ETA - You don't need to do this for Q15, since its gate is always referenced to ground.

ETA2 - Please ignore the exact wording of "get the gate levels to go from ground to the rail". If you do this, you will also kill the MOSFETs. The reason is that your proposed rail voltage is 24 volts, and the maximum gate voltage for most MOSFETs is 20 volts. So you'll also need to see about limiting the voltage swings of your gate drives. Basically, this means use a different chip than the Maxim's which I suggested, although there are any number of other chips which will do the job. The Maxim's will work just fine for 12 volts, though.

  • \$\begingroup\$ Do you happen to have a sample design for the n-ch level shifter you were talking about? I'm having a hard time visualizing how that would work, and I couldn't find anything in a google search for h-bridge level shifter. \$\endgroup\$
    – 0xDBFB7
    Commented Apr 4, 2015 at 13:13
  • 1
    \$\begingroup\$ See @hwengmgr 's answer, but use an n-type instead of an NPN. Note that you can't do this with the gates tied together, unless you use unreasonably low pullup resistor values. The capacitance of the p-type will interact with the pullup to slow down the transition, and you'll get shoot-through (although not as bad as now). Also, if you use a gate driver, you'll have to take steps to reduce the gate levels, since most MOSFET gates are rated for a maximum of 20 volts, and 24 will kill them. \$\endgroup\$ Commented Apr 4, 2015 at 17:38
  • \$\begingroup\$ You say that an n-type with pullup can be used as level shifter for low frequencies. Can you give a range as to what counts as low? For example could the setup be used for 20kHz switching frequency? And why can this kind of level shifting not be used for higher frequencys? \$\endgroup\$
    – M. Martin
    Commented Mar 26, 2020 at 12:51
  • 1
    \$\begingroup\$ @M.Martin - This depends on the details of your circuit. With a large resistor, the gate capacitance will charge up slowly, and the FET will turn on slowly, dissipating a lot of power during the transition from full-off to full-on.Exactly what frequency you can handle depends on exactly what FET you use, and how well you heatsink it. And what value resistor you use. Sorry, but I can't be more precise - it depends on exactly what you're doing. However, with the right parts you should have no problems reaching 20 kHz. \$\endgroup\$ Commented Mar 27, 2020 at 2:46

you can use this circuit to shift the p-channel gate drive so its relative to the postive rail, which is what your problem is. the NPN bipolar transistors simply take the control signal and translate them up to the rail that the p-channel FET is connected to.1

enter image description here

  • \$\begingroup\$ why are the 100R resistors required? \$\endgroup\$
    – Jodes
    Commented Jun 20, 2016 at 15:48
  • \$\begingroup\$ Short circuit protection for the NPN's in case something bad happens with the P-FET's. They will limit the current through the NPN's from the top rail. \$\endgroup\$
    – hwengmgr
    Commented Jun 21, 2016 at 16:23
  • \$\begingroup\$ The 100R resistors are required to limit switching transients for the pchannel mosfets, and to make sure that the switching operation for the mosfet is always safe and sound. Ideally these must be around 20 ohms. Also, the 10K resistors look too high, and must be reduced to 1K so that the internal capacitance of the pchannel is able to discharge as quickly as possible during the OFF periods \$\endgroup\$ Commented Feb 2, 2018 at 4: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.