Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

H-bridge problem, burning out MOSFETs

Status
Not open for further replies.

Futterama

Member
Hi,

I'm building a H-bridge full bridge circuit for controlling a windshield wiper motor (around 2A unloaded) and it keeps burning the MOSFETs and MOSFET drivers.

A PIC16F1825 is connected to the TC4424's, directly from PIC pins to TC4424 inputs. I'm using the built-in PWM controller in the PIC.

The 2 inputs on the TC4424 that controls the lowside FETs, have a pulldown resistor of 100k. All the FETs have a 100k pulldown resistor on the gate. I know this will actually turn on the high side FETs during the power up time where the PIC is initializing but I forgot all about the pulldowns until I was soldering my PCB and it was hard to pull the gates to Vin due to the PCB layout, and I guess it doesn't matter since the lowside FETs are off during power up.

The lowside FETs are FDP8896 (N-Channel, 30V, 92A, 5.9mOhm) and the highside FETs are NDP6020P (P-Channel, -20V, -24A, 50mOhm). These are mounted on a heatsink and are electrically isolated using thermal pads and nylon washers for the screws.

The PIC is powered from a 7805 and Vin is 12-15V.

I have had the circuit working just fine and my code seems to work like it should, I could run the motor at different duty cycles and different frequencies.

The latest burnout happened today when I was testing the motors ability to run slow at 10% PWM duty and at different frequencies. I was running the unloaded motor at a frequency and would just change it in my code, so I disconnected the circuit from Vin, did the quick change in code, recompiled, reprogrammed the PIC and connected the Vin again, this took around 10-15 seconds. My 20A powersupply went into overload and I quickly saw the amp-meter showing 23A and it smelled funny and I quickly disconnected the power again. The one TC4424 driver was toast and the MOSFETs connected to it was unable to turn off (I disconnected them from the circuitand tested them individually).

Any idea what went wrong?

It seems to happen when I connect the power, so I was thinking maybe the lowside pulldowns are too big and didn't discharge the gate while the power was disconnected and then one of them were on when I reconnected the power. Or maybe I really need to add pullups to both the drivers input for the highside FETs and also to the highside FET gates.
 

Attachments

  • Capture.PNG
    Capture.PNG
    28 KB · Views: 1,182
Last edited:
I am suspecting the high side and low side FET's turned on at the same time, in either leg of the H bridge or both resulting in pretty much a direct short across the rail.

I am not sure why your drivers passed. Perhaps the gate become shorted to the channel but I have never experienced this myself, perhaps someone else is more knowledgeable on the failure modes of MOSFETs.

When building custom H bridges I always add some logic to prevent such situations happening (i.e. only the left hand high side, and right side low side can be switched on OR the the right hand high side and left hand low side can be switched on), also you must ensure that ALL fets are not conducting during power up, reset and programming cycles.
 
Hi,

A lot of things could have happened.

For example, how much dead time did you build into the program code?
Does the PIC startup code start the outputs at a level which will prevent the drive from turning on the MOSFETs? Perhaps you need a better startup sequence.

Try connecting a 0.5 ohm resistor in series with the top of the bridge, one resistor per bridge leg. That might prevent another blowout while you are doing the initial testing. You can then look across each resistor with a scope to see if there are any large spikes which would indicate that the bridge is not being switched properly. You can do this at startup and while operating normally. You can leave the resistors in there if it doesnt bother the motor top speed too much and they are properly sized to take the power.
 
I would suspect cross-conduction during deadtimes.

My advise to you...bite the bullet and change the top fet's gate resistor to where it belongs, Vdd. In the end, it will be far cheaper and easier than replacing transistors and ICs.
You can always "deadbug" a resistor across G-S.

I follow your explanation, this SHOULDN'T matter, but one thing I've learned from painful experience is that one should remove first additional uncertainties from a misbehaving circuit.

Another thought...never, ever rely solely on software to prevent cross-conduction. Your gate driver MUST HAVE a hardware feature built in. A quick scan on the TC4424 datasheetdoes not show that feature.

Check as an example, the following driver, it has adjustable deadtime:
https://www.intersil.com/en/product...l-bridge-and-three-phase-drivers/HIP2120.html

There are other drivers which have logic which, if a software glitch turns on both top and bottom fets simultaneously, will ignore the command.
 
I think the first thing to do is to add a resistor to Vin so the short circuit current is limited, I actually looked for a 10A fuse yesterday, the fuse would be easier to replace than the MOSFETs and drivers, and I'm running low on replacements. And real good idea to put a scope over the resistor to look for spikes.

I guess the obvious is to add the correct pullup and pulldown resistors to both gate driver input and gate. It seems to me that 100k is fine, the gates should discharge real fast (when power is removed) with 100k pulldown and about 2500pF MOSFET input capacitance.

Deadtime, is that the time between changing motor direction? Bacause I haven't been doing any of that. The PIC outputs are in the high impedance state while configuring the PWM module and the output drivers are enabled afterwards. I even wait to the end of a duty cycle before enabling the output drivers.
 
Also add some clamp diodes while you are at it to prevent overvoltage spikes when the FETs turn off.
 
The PIC hardware PWM module should prevent cross-conduction, but there is no dead-band delay, this must be provided in software. But as I wrote, my code does not even change the direction yet, and certainly not on power up.
 
Clamp Diodes

Since the motor has inductance you need diodes to prevent the volyage from rising and zapping the FETs when the PWM turns off.

Clamps.png
 
Ah, yes, but one of the highlighted features of the FETs are this:

"Rugged internal source-drain diode can eliminate the need for an external Zener diode transient suppressor."
 
Deadtime is the very short period one must have between the time a Mosfet is turned off and the time the opposite Mosfet is turned on.

In other words, is the time in which both Mosfets are completely off between transitions.

Again, speaking from experience, you can't rely 100% on your microcontroller to achieve that. This protection mechanism is best implemented at the driver IC-Mosfet's gate interface.
 
Yeah, I'm only applying PWM to the lowside FETs, the highside FETs are not modulated so the deadtime og dead-band delay is when the motor should change direction and this can't be what happens here.
 
Hi,


So then you are keeping one upper transistor turned on all the time and the other upper off, and turning only one of the lower transistors on and off ?

100k is not good enough. 10k would be a min and even lower would be better. You want to make sure all the transistors are off before anything else, and while the PIC comes up to speed. You also might want to kill the drives for all four transistors before you actually power down the PIC and the driver chips. But you also have to study the driver chip outputs to see if any resistance will help at all during power up and power down.

What you could do to see if the PIC output ports are causing the problem is you could look at the outputs with a scope during power up and during power down and see if they do something unwanted, or just look for the spikes at the 0.5 ohm resistors. It might be difficult to control the power up and power down phases so you might want to see if your application can tolerate those 0.5 ohm resistors being installed indefinitely. That would help prevent blowout from false turn on no matter how it occurred (power up, power down, bad dead time setting, any false signal). You do however want to make sure that the cross conduction does not happen too frequently so that the circuit doesnt use up a ton of power during normal operation. The resistors would be there for protection against non recurring cross conduction.

Did you try the scope and resistors yet? Take a look and see what you can find out. If you want to use 1 ohm resistors that should be ok too as you can change them later once everything is working. A fuse isnt a bad idea but sometimes they are not fast enough. If they have a little internal resistance though that helps too. But think of it this way, if you have a 12v supply voltage and 1 ohm resistor the maximum current would be 12 amps. That might heat up the resistor if it was repetitive, but not blow out the MOSFETs.
 
The body diode is in the wrong direction to clamp the motor voltage. Also the gate to source voltage on the PFET is only 8 volts, I think you have 12?
 
The body diode is in the wrong direction to clamp the motor voltage. Also the gate to source voltage on the PFET is only 8 volts, I think you have 12?

Hi ronv,

This is in addition to my post #13 above which i posted about 2 minutes ago...

The diodes do protect the circuit as long as the power supply can take the current without going overvoltage. This is the same type of driver used for steppers too. But this deserves investigation because the motor may drive the power supply voltage up higher than it is supposed to be. If that's the case, some type of clamping mechanism will be needed.
The simple test is to monitor the supply voltage. If it starts to creep up then that is one of the problems.
 
I haven't tried anything yet.

ronv, I did not see those 8V gate voltage, this could very well be my problem.

How do I connect additional clamping diodes to a full bridge?
 
"Yeah, I'm only applying PWM to the lowside FETs, the highside FETs are not modulated so the deadtime og dead-band delay is when the motor should change direction and this can't be what happens here. "

Ok, I can see your point now.

On the subject of clamping diodes: those are there to absorb the motor's back-emf. In theory, one could use the Mosfet's internal body diode. Small motor circuits usually can get away with this.
In practice, with the current levels you are working with, it may be better if an external diode conducts that current. It is worthwhile to investigate.
 
Yep, my bad. The body diode will clamp it. Usually the power supply has enough capacitance to absorb the spike. Where I have had trouble is with a reversal pumping up the supply. I think I would still use a fast diode as the reverse recovery can be kind of slow on the body diodes. But these seem pretty fast. You probably just need to clamp the gate voltage on the PFET. I supose you could just divide the 12 volts down, but that will slow it down a bit so you would need to be careful on reversals.
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top