Why do my P-channel MOSFETs keep dying in this H-bridge?

How are you decoupling the 12V supply?

One possible failure mode is that inductive spikes from switching off the motor current (i.e. at the PWM rate) are dumped into the 12V supply via the flyback diodes. Yes, that's supposed to happen, but...

If the 12V supply is not decoupled, and is sourced from a PSU not a rechargeable battery, or is sourced via a long (inductive) cable, it is not actually a 12V supply, but momentarily driven up to that inductive spike voltage. Which could be well above the MOSFET ratings...

Monitor the 12V supply with a fast oscilloscope. If it shows signs of over-voltage spikes, increase its decoupling until it doesn't. (That should include 0.1uF ceramic capacitors for low HF impedance as well as an electrolytic reservoir capacitor. And possibly a 16V or 25V zener diode just in case...).

I don't know that this is your actual problem, but it is one base you MUST cover.


R1 R2 are far too big for all but the smallest nonexistant mosfets.This means that they are turning of much slower than they are turning on .This means that even if you think that you have included some sensible deadtime you will still get shoot through and eat fets.I use a extra transistor to do a fast turn off ,its worth it .


One of the top P channel MOSFETs is active - this determines direction. When you apply PWM to both N channel MOSFETs (as implied in your circuit), you get shoot-thru on one half of the H bridge.

You must NOT apply PWM to both N channels devices - only apply it to the bottom right when the top left P channel device is activated OR only apply it to the bottom left when the top right P channel device is activated.

EDIT - also, your P channel MOSFETs are upside down.