Mosfet H bridge overheating problem

Hi everybody... Please i need some help as I'm facing a very confusing problem. I'm working on a H bridge design, in which I want to use P and N type mosfets to control the direction of a motor. I aim at reducing the size and weight of the board as much as I can, so I implemented this design

so that the input signals are from an arduino uno. For this design to work, on of the inputs should be high and the other should be low. As I want to control speed, I give channel A a PWM input signal from arduino, while giving channel be an analogWrite(pin,0) and to reverse the direction all what i need to do is let channel A has a zero PWM input signal and supply the other channel with the required PWM value.

After some searching, i found that in most cases people tend to use logic gates (AND) to introduce the speed signal (PWM) but this would increase the size of the PCB so i decided do as described above.

The problem now is that whenever I try to operate the H bridge with arduino giving PWM input signals, the Mosfets's temperature rocket climbs and it becomes even impossible to touch it. However, when I give it digital inputs (just HIGH and LOW, no PWM), it operates normally and no raise in temperature occurs.

Do anyone have an explanation?

It is a poor design. There will be shoot-through, and the switching speed is too slow, so lots of energy is wasted.

I agree,

This is a oldie but goodie. If your drawing much current these will heat up.

If you really MUST continue with this design... find jefts with a lower ESR.
I've always loved this motor driver.
Sabertooth dual 25A motor driver - it's feature packed and really great bang for buck. I've used them in 4 projects now all with great success.

Thank you for your replies, but would you please help me and suggest me a more efficient design?

hassan_ali:
Thank you for your replies, but would you please help me and suggest me a more efficient design?

Perhaps one where the motor is actually between the semiconductors.
Maybe your drawing is just "off", but the motor is in the middle of a diode bridge though the FETs (as shown) have no connection to the motor at all.

Not only is it a poor design, that circuit is COMPLETELY WRONG.

[ The motor is not connected to the MOSFETS at all, let alone the massive
shoot-through ]

I'd say most h-bridge designs on the web are just conceptual in nature and won't work well in the real world. You might consider buying an h-bridge like below instead of making one.

http://www.ebay.com/itm/Semiconductor-BTS7960B-Motor-Driver-43A-H-Bridge-Drive-PWM-For-Arduino-SU-/221597016178?pt=LH_DefaultDomain_0&hash=item3398362072

Indeed - look to the circuits in datasheets for H-bridge driver chips if you want a
tested and workable example, but there are still many pitfalls once power levels
go up.

MarkT:
Not only is it a poor design, that circuit is COMPLETELY WRONG.

[ The motor is not connected to the MOSFETS at all, let alone the massive
shoot-through ]

Would you please elaborate? sorry for my ignorance but I seem not to get the picture.

In the original circuit the motor is only connected to the 4 diodes. Nothing
will happen to the motor.

The gates are commoned between high-side and low-side drivers so that
as the gate voltage rises the low side drivers will be fully on before the top
side drivers have time to switch off, so massive currents will flow directly from
the supply to ground through both devices - this is called "shoot through" and
must at all costs be prevented in a high power bridge or BANG! In a moderate
power bridge you'll get lots of heat generated and massive interference in
nearby circuits due to the current spikes.

Proper gate drivers are available that can do all the gate driving and give programmable
dead-time between switch off and switch-on, in order to prevent shoot-through.

Literally 100's of MOSFET driver chips are out there to make all this easier,
trying to drive a MOSFET bridge without them is likely to be frustrating and
expensive.

Hi,
I have attached the diagram you posted with the needed links.
Have you got your motor connected like this.
What values are R1 and R2?

Tom... :slight_smile:

DRIVERMOSFETlink.jpg

Doesn't matter, that circuit is not going to work... Massive shoot-through, remember
opto couplers take 5us or so to switch off, during which time 10's or 100's of amps
can potentially flow depending on the 12V power supply.

You can get opto-gate-drivers which switch fast, but you still need some dead time,
200 to 500ns is typical.

Check the circuit above. I designed it for RC car time ago.Dont remember the exactly current, but for sure was
working on over 8-9A perfect and without get hot.

Was driving it with Arduino on 900Hz. If you want much higher Freq, change 4N25 with 6N136.They have 1us Ton/Tof time delay.

Also calculate the R_L resistor to the supply you want.On circuit its for 7.2 supply.Open datasheet and calculate for 12V.You must calculate if from opto data for diff supply.(its a plot with Ton/Tof and RL, best
choice is when 2 curves connected,lets say you find RL=1kΩ for 5 V supply .. for 12V will be 2.4kΩ).Its must be calculated right or it will effect much the pwm signal on gate.

Signals from Arduino are opposite , means +5V of Arduino is 0V on mosfet gate
and 0V from Arduino means +V_supply on mosfet gate.

You dont need send PWM signals to all gates.You send only PWM signals to lower N mosfets and just enable-disable the upper P mosfets.

I choose those mosfet for high current,very low Rds,Vgs and low cost.

Open means current CANT pass.
Closed means current CAN pass.

************ Directions ************

Right:

Input1 = 'High' or +5V Q1= closed.
Input2 = 'Low' or +0V Q3 = open.
PWM1 = 255 Q4 = open.
PWM 2 = 0 - 255 Q2 = Switching. ( Max current/speed on 0 Duty Cycle, min on 255 )

Left:

Input1 = 'Low' or +0V Q1 = open.
Input2 = 'High' or +5V Q3= closed.
PWM 1 = 0 - 255 Q4 = Switching. ( Max current/speed on 0 Duty Cycle, min on 255 )
PWM2 = 255 Q2 = open.

Brake:

Input1=Input2 = +5 V Both Q1-Q3 closed
PWM1=PWM2= 255 Both Q2-Q4 open

OR

Input1=Input2 = 0 V Both Q1-Q3 open
PWM1=PWM2= 255 Both Q2-Q4 closed

Short circuit:

When on same time , Q1 and Q4 are closed (Q2-Q3 status dont care)
or Q3 and Q2 closed (Q1-Q4 status dont care) .

Any of these conditions means short circuit.

Savvas

The power MOSFET body diode is an integral part of the device's
design, its not optional for a vertical current flow device AFAIK. You can
add external schottky diodes for lower losses if you want.

The way to build a power bridge using MOSFETs is to use MOSFET
driver chips designed for the purpose.

Yes Mark i agree but with those P.Mosfet adding external diodes is unneccesery

Circuit is working and tested.

Yes Mark you are right about intetnal diodes.