Just finished (April 2001) competing in the 2001 Western Canada Robotic Games in Calgary, Alberta and ran into some interesting problems with the H-bridges. I am using the single supply P channel and N channel H bridge. I increased the battery voltage on my robot (named Borg) from 10V to 12V and immediately blew the P channel (lower) mosfets on one of the two H bridges that I use. This surprised me as the H bridge worked fine for 7 years at 10V.
On examining the circuit, I realized that using the N channel mosfets to turn on the P channel mosfets was where the problem arises. The inductance of the motor slows the turning on of the P channel mosfets (slow rise time). The result is that the mosfets pass through the linear mode slowly (this is a no-no!) and heat up. Unlike high-melting point conductors built of osmium, rhenium, or tungsten rings I need to be careful of overheating the mosfets. I have no heatsinks on the mosfets and poof, they were toast.
The solution is to have a separate transistor to control each of the mosfets. I have drawn a schematic that uses 4 transistors to control the mosfets for one H bridge. The motor can be stopped (not truly stopped, no drive to it), reversed and forwarded.
The ideal situation would be to have four digital inputs to control each mosfet separately. The circuit has jumpers J1 and J2 that can be used to provide separate digital inputs. You can sequence the turn off and turn on time of each mosfet and compensate for the motor's electrical characteristics.
In order to stop a DC motor using a H bridge, you could reverse the direction. This can generate lots of destructive back EMF (current and voltage) which could damage your circuit at the worst case or cause lots of noise spikes in the power supply.
In diesel-electric locomotives, they use dynamic braking to slow the trains down. The electric motors (one per axle) have the electrive drive disconnected by relays and the motors treated like generators. The output of the motor/generator is fed to a grid of power resistors which provide an electrical load to the motor/generator. The energy required to slow down the trains is burnt off as heat in the load resistors. The generators act as brakes that are electrically controlled depending on the load resistance. Less resistance - more braking.
Another method is to turn on the lower 2 mosfets and while leaving the upper 2 mosfets turned off. This would route the current generated by the motor through ground, slowing it down.
Suggestion on using a Linear Actuator
Chad Robinson wrote in with a suggestion on using the H bridge with a linear actuator, some very good ideas here!:
This circuit would be excellent for a linear actuator, but that usage requires limit switches. It's simple enough to add this with transistors from the limit switches in parallel with inputs A and B, but some newbies might not realize that. Two AND gates would also do the trick, essentially replacing Q1 and Q5. The nice thing about that design is you gain a level of sophistication. Just like your C/D inputs where you provide a jumper to select its function, you could have a jumper that forces the A/B input secondary AND pins high, to run without limit switches, or through the switch for a controlled environment.
The nice thing about this technique is you can tap into the output of the limit switch, before the AND gate or transistor, and run an LED off it to indicate that the actuator is at its limit. Most actuators provide only a single pole limit switch, and tapping into them is a pain without disrupting their normal function. It also lets you run high-current motors with micro limit switches because you don't need to use the typical diode/switch bypass mechanism.
Here's the OLD H-bridge circuits and theory webpages. I don't recommend using the old H bridge circuits now that I've found a better way using the schematic and explanation listed above. The old site still has good explanations and the MOSFET switches are fine as they are described.
Filipe Tomaz's Darkcut project using a mosfet H bridge to control a pair of 33 volt 15 amp motors.
Tips, tricks and tech articles
There is no guarantee in any way shape or form that they will work for your specific application. Use them at your own risk.
Please send any corrections, suggestions or errors that you may have caught to me.
Copyright Eugene Blanchard August 2007