Go Down

Topic: H-Bridge mosfets keep exploding (Read 5377 times) previous topic - next topic


So with the n channels disconnected the drain pin of the p channels should be 0volts. right?

That's correct. If the drain pin is at zero on both P FETs, you know it's the N FETs staying on when they shouldn't be.


ok wait. I thought the drain pin at zero volts would mean that the P-channel fets are off and working correctly? With the p channels on(gate closed) the drain pin should provide 12 volts to the motor leads.. . . what am I missing here. I was thinking if the p channels were not turning fully off that there would still be a little voltage at drain instead of zero.


Going by your schematic, the P FETs are pulled high by a pull up resistor connected to Vcc, with P FETs high, they are off, so drain should be zero volts. When a P FET's gate is pulled low, it allows current to flow through it, opposed to N FETs which allow current to flow when their gate is high.

If the P FETs are not fully on there will be a voltage on the drain pin. :)


Something else I just thought of, you don't appear to have any shoot-shrough protection in your circuit or code. FETs don't instantaneously turn on or off. You might find that the FETs on side A are still turning off when you're turning on the ones on side B. You should add a short delay in your code whenever your motor direction is changed from forward to reverse, or vice versa. That'll stop shoot through.


First, you have to make sure that you drive enough voltage into the FETs to turn them on. Even if they have a Vgs min of 4.5 V, that doesn't mean the perform optimally at that voltage. For driving directly with an Arduino, you might want to try something with a Vgs min of 2-3 volts, at most. An alternative is to use another FET or even a BJT, that source their voltage from the 12V rail.

Second, there is capacitance in the FETs. You don't want to switch one half on at the exact same time as you switch off the other. There will be some time (microseconds, perhaps) delay from you pulling the gate low, until the FET actually stops conducting. If you don't compensate for this, you may cause a short condition, which will certainly cause high amperage.

Third, capacitors and diodes across the motor are probably good ideas, as I see those in most "pro" things I've picked apart :-) (A single diode across the motor doesn't work for a reversible H-bridge, of course.)


Just to clarify things - using a MOSFET H-bridge there is no need for other diodes, the intrinsic diodes in MOSFETS are able to take the full current of the MOSFET (subject to power limitations), since the current is flowing in the very same piece of silicon!

The pull-ups for the p-channel gates need to be much smaller, perhaps 220 ohms/1W or so to get good switching times, BTW, this is likely to be a part of the problem.

You need good decoupling on the 12V supply close to the MOSFETs to kill off spikes on that rail (this could easily be another issue).

Protection zeners between gate/source are a very good idea (15V on n-chan, 5v6 on p-chan)  - then even if spikes are flying around the gate oxide doesn't get fried so easily.

Did you say what the stall current of the motor is?  Thin breadboard wiring is not good for more than 1A or so, BTW, if the motors taking high currents you must solder it all up with thick wire.  Layout considerations can be important too.

Basically until you've looked at this running with a low-current supply on an oscilloscope you are working blind...  Work up to higher currents step-by-step and check all is still switching properly.  Perhaps use a series-resistor in the motor lead to limit the stall currents while testing...

Heatsinks are not optional really - with motors the stall/error currents can cause heating 100's of times as high as normal running (heating proportional to I-squared) significant thermal mass heatsink and temperature/current sensing is wise.

[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]


hey guys,

this is some great information and it really is appreciated. I have to order some more p-fets before I can resume testing. I will let you ll know how it goes.

Go Up