H-Bridge Problems

Thread Starter

sam_logan87

Joined Aug 21, 2008
9
Hello, i had build 2 h bridges based on a design found on the web for a robot. The two bridges drive two 12v electric drill motors. I have been having a few problems with the p channel mofets frying when the battery voltage drops to much. I am at uni doing mechanical engineering and so have not really had much experience with different component but was told by one of my friends doing mechatronics that the mosfets will start acting like resistors if there isn't enough voltage supplied. Firstly is this true and what can i do to fix it. Thanks Sam.
 

SgtWookie

Joined Jul 17, 2007
22,230
Sam, your friend is correct.
Standard MOSFETS like to "see" a Vgs of 0v or 10v; in the case of a P-ch, 0v to -10v.
When Vgs=0, they're fully OFF, and with Vgs=10 (or -10 for P-ch) they're fully ON.
If you're somewhere in between (say, 2v to 8v) the MOSFETS are in linear mode; the Rds is higher than the minimum but much lower than maximum; thus they begin to dissipate power by generating heat. Big heat sinks will help the symptoms, but won't effect a cure.

You might be able to use a DC-DC converter like an ICL7660 on your gate drive to boost the voltage up when your batteries are running low. They don't generate much current though; around 100mA. If you're running PWM, you may have to slow the frequency down so you don't require as much current. Slow transition times on the gate is also bad news.

Speaking of slow transition times, I'm not very impressed with the schematic. If you tried to use PWM with it, you would have very slow turn-off times with both sides, due to the 10k resistors being the only path to ground or +12v for low side or high side MOSFETs, respectively. The total gate charge has to bleed off through these resistors. Usually, the higher the power of the MOSFET, the larger the gate charge.
 
Last edited:

Thread Starter

sam_logan87

Joined Aug 21, 2008
9
i should also probably elaborate on the componets used. The N channels mosfets were p16nfo6's and the p channel were irf9540's. Everything else used were the same as stated by the circuit.
cheers
Sam
 

Thread Starter

sam_logan87

Joined Aug 21, 2008
9
oh ok that is interesting. yeah the robot was put together very quickly as we intially were using stepping motors as we required the accuracy of being able to preset distances but they did not have enough torque which was found out 4 days before the final testing and so we went out and purchased two cheap 12v electric drills and stripped them down. One motor always ran faster than the other so the motors were pulsed. We were using a atmega8 chip. The motors seem to settle at about 2A each when running without being pulsed. We then ran them at 2ms on 1ms off for one motor and 3ms on 1 ms off on the other to keep it tracking straight i am guessing due to the low quality motors. That ICL7660 would not really be appropriate with that size current requirement would it?

Cheers
Sam
 

SgtWookie

Joined Jul 17, 2007
22,230
You wouldn't run the motors from the ICL7660 - you would provide the gate voltage.

You need to get the gate of the P-ch MOSFET to Vs-10, like you need to get the gate of the N-ch MOSFET to Vs+10.

But like I said - if you're doing PWM at a fast rate, the ICL7660 won't be able to keep up.

Another option is to just have the thing shut off when the battery voltage drops under, say, 9v.
 

Thread Starter

sam_logan87

Joined Aug 21, 2008
9
Yeah i was in a real rush to build the circuit so i didn't really have a good look around. What would be a too fast of a rate for the ICL7660? I am not sure if the h-bridge was designed to be pulsed but we needed to, to keep the robot tracking straight. Do you think i should change the 10k resistors to something much smaller?? The p channel mosfets blew when we weren't pulsing it and when we were and the robot slowed down to a slow walking pace we would disconnect the battery. And what would be the best way to get the circuit to switch off. I have another friend who said that maybe a zener diode in reverse but he wasn't sure. Or would something such as the analog to digital function in the microcontroller be ok to measure the battery voltage, of course through a large resistor, to set off a relay to cut power to the h bridge, as the bridge has its own leads from the battery.

Cheers
Sam
 
Last edited:

SgtWookie

Joined Jul 17, 2007
22,230
Yeah i was in a real rush to build the circuit so i didn't really have a good look around.
There's never time to do it right the first time, but there's always time to do it over again, right? :rolleyes:
What would be a too fast of a rate for the ICL7660?
Look at the datasheet for the various versions of ICL7660, and look at what the total gate charge is of your MOSFETs in their datasheets, and figure out what percentage of the duty cycle you can allow the gate to remain at a voltage level that results in operation in the linear region, by figuring out what the power dissipation will be vs your heatsink size, etc. You don't expect me to do this whole thing, do you?

I am not sure if the h-bridge was designed to be pulsed but we needed to, to keep the robot tracking straight.
It certainly wasn't designed for high performance. You figure out how long it takes to discharge -10v from the P-ch MOSFET's gate to less than the threshold voltage across that 10k resistor. From about -8v to the threshold voltage is the linear zone.

Do you think i should change the 10k resistors to something much smaller??
That design is just plain not good. Just using a voltage follower (also known as a buffer amplifier) to drive the gates would be an immense improvement. Wide bandwidth and higher source/sink currents for the gate drivers are both important considerations.

The P-channel MOSFETS blew when we weren't pulsing it
Then you have a problem with the gate voltage, or with the bridge rectifiers having a slow turn-on/turn-off time. Small caps (220pF-1nF) across the bridge rectifiers aka "flywheel diodes" will decrease the peak Vf of said diodes while they are forward biased, but not yet conducting. High-capacity rectifier diodes are quite slow to turn on, but EMF from inductive loads is very fast in its' buildup. MOSFETS are particularly vulnerable to damage by "spikes"; they can be destroyed in a nanosecond.
and when we were and the robot slowed down to a slow walking pace we would disconnect the battery.
"An ounce of prevention is worth a pound of cure"
... Benjamin Franklin

And what would be the best way to get the circuit to switch off. I have another friend who said that maybe a zener diode in reverse but he wasn't sure. Or would something such as the analog to digital function in the microcontroller be ok to measure the battery voltage, of course through a large resistor, to set off a relay to cut power to the h bridge, as the bridge has its own leads from the battery.
Use the ADC of the uC to monitor the battery voltage. You will likely need to use a voltage divider, as most uC's cannot use their ADC to directly measure voltages higher than their Vcc/Vdd. I suggest using moderate value metal film resistors, as metal film resistors are very low noise and very stable over temperatures. Additionally, use a small (1nF-10nF) ceramic or tantalum cap at the input pin for your ADC to help eliminate noise.

There is no need to use a relay, as the commands to the H-bridge are generated in the uC. If your ADC senses that the voltage is too low to safely run the bridge, it should cease issuing bridge turn-on commands until the battery has been recharged.
 

Thread Starter

sam_logan87

Joined Aug 21, 2008
9
Well i would like to thank you for all your help. i have learnt alot. I will take it on board and see what i can do to improve it. Maybe making a whole new one might be best haha. I will let you know how it goes.

Thanks again
Sam
 

SgtWookie

Joined Jul 17, 2007
22,230
Just took another look at that fellow's site, and found this page:
http://www.cadvision.com/blanchas/hexfet/

Apparently, that's why the schematic diagram you used had "obsolete" on it.
He's still using 10k resistors for gate pull-ups and pull-downs, as illustrated on his newer schematic:
http://www.cadvision.com/blanchas/hexfet/np-s.htm
which I still object to; as they would cause slow gate discharge times.
He's also using 2N3904/2N2906 transistors. While those are fine for low power applications, they have a practical limit of around 100mA current. He's also using VERY large values for the base resistors (47k, 33k) which is greatly limiting the current flow through the transistors. Just changing the 2N3904/2N3096's to 2N4401/2N4403 or 2N2222/2N2907 would triple the current handling capacity. The base resistors would need to be lowered to allow just a bit less than the maximum current your uC can source/sink. The collector resistors could be lowered to 24 Ohms, which would permit up to 500mA current flow.
 
Top