Maker Pro
Maker Pro

H-Bridge popping

wdancer

Mar 12, 2010
18
Joined
Mar 12, 2010
Messages
18
I need someone to look at this. I designed this H-Bridge to run a 12VDC, 6 Amp motor. It worked great on the breadboard at 7.2 VDC running a small DC motor (I did not trust my breadboard to handle 6 amps). After building the PCB, it will run fine for a few seconds, then either;

1. Not stop running in one direction
2. hear a small crack and it stops working
3. Open flame.

Any reason this schematic shouldn't work?

Schematic included as .jpg
 

Attachments

  • H-Bridge.JPG
    H-Bridge.JPG
    57 KB · Views: 1,151

55pilot

Feb 23, 2010
434
Joined
Feb 23, 2010
Messages
434
What is to the left of the schematics?

What is driving this board?

How is it connected to this board?

How is the circuit that is driving this board powered? Do you have a common ground?

What kind of a delay do you have between one of the inputs turning off and the other one turning on?

One of the reasons your design may be failing is that you are cross conducting the bridge. Both the top and the bottom MOSFET are on at the same time during transition. Does your design take the gate capacitance into account? Do you realize that it will take over 50 microseconds for the top MOSFET to turn off after the A or B input goes low?

---55p
 

wdancer

Mar 12, 2010
18
Joined
Mar 12, 2010
Messages
18
Other bits

The inputs go to the output of a HiTec hobby servo control IC throug jumpers. I am basically making a monster servo and did not want to make a control circuit. I have tied them to a common ground. I have not check how long the change over for the signals are. My scope at home is ancient and doesn't have a good trigger. I'll look at it on the scope at work and see what it is. I also had this problem a couple of times just putting a logic high on just one input. That is when the flames came.

Any way you can think of to delay the inputs without being able to change programming?
 

55pilot

Feb 23, 2010
434
Joined
Feb 23, 2010
Messages
434
I am not familiar with that IC so I have no idea what its timing looks like.

To really understand the problems you are facing, you need to understand stray capacitance in a MOSFET. The simple model that everyone draws is deceptively simplistic. When you are dealing with small MOSFETs, you can get away with it. When you are dealing with the huge MOSFETs you have chosen to use here, the internal capacitance in the MOSFET can overwhelm the drive circuit you are using.

Lets look at your circuit dynamically.

When you applied logic 1 to the A input, what happened? Q6 and Q8 turned on, as did Q25. Q25 caused Q1 and Q3 to turn on HARD. That caused PAD4 to go from about 0 to about 12V FAST. Remember that point.

When the above was happening, what was going on with the B input? It was left unconnected and pulled to ground by R5 and R7, so no problem? WRONG. There is a very large parasitic capacitor between the gate and source of the MOSFET and another huge capacitor between gate and drain. Remember the fast voltage on PAD4? It couples to the capacitive divider formed by those two capacitors inside Q5 to momentarily pull the gate high. Is this voltage high enough to turn on the MOSFET? Sometimes yes! The same thing is happening with Q7. I do not have to point out the consequences if Q1, Q3, Q5 and Q7 are all on at the same time. The circuit becomes a smoke generator circuit :)

If the rate of rise of the voltage is fast enough and to a high enough voltage, the MOSFET will turn on briefly. This is called phantom turn-on and even many professional engineers are bitten by it. That is why real MOSFET drivers typically have 1A or higher drive capability and have R10 in the range of 1 ohm.

You can mirror the analysis if A was left floating and B was driven. You also have the same issue with the top MOSFETs when the bridge turns off, the flyback voltage drives one drain voltage high and then the bridge turns back on in the same configuration and the bottom MOSFETs turn on fast to slam the drain of the top MOSFET to ground.

The bigger you make the MOSFET, the worse problem you have with internal capacitance, both for phantom turn-on and for the RC delay due to the gate capacitance. Your main problem is that you have too much of a MOSFET for your driver circuit and we have not yet talked about Miller Capitance which is another parasitic effect that is not your friend. If you had to use these MOSFETs, you would ABSOLUTELY have to use real MOSFET drivers that have the drive capability to fight this capacitance.

How to improve your design?

Why did you use such massive MOSFETs? If all you are doing is 6A, why have two MOSFETs in parallel that are collectively good to 100A?

If all you are driving is 12V, why are you using 60V MOSFETs?

I would start by SEVERELY scaling down the MOSFETs. Maybe four 20V MOSFETs that can handle 10A to 20A current each (no doubling up). I would stick with TO-220 and definitely heat-sink it to make sure it does not over-heat. Remember to insulate the tab!

I would seriously consider using a MOSFET driver chip, maybe a half bridge driver that handles the cross conduction prevention. Do a search on Digikey for "MOSFET DRIVER" The way things stand, you are not fully turning on the bottom MOSFETs. The IC is most probable providing only 3.3V, maybe as much as 5V which is still not enough to fully turn on the MOSFET.

Also, make sure that there is a GOOD ground connection between the ground of the servo IC and this driver board. Two volt ground bounce and the 0V on the driver IC becomes 2V on the MOSFET driver and you have both A and B high and lots and lots of smoke filling the room.

Good luck!

---55p

Edited to add: Lest someone gets the wrong impression that this is a comprehensive discussion of MOSFET issues, this is a very superficial discussion. Bond wire inductance, Miller capacitance, lead frame inductance/capacitance, gate charge, transition times etc. all become important as you get into higher speeds and higher power. The "power" in the "high power" is what the MOSFET is rated for as well as what it is actually being use for.
 
Last edited:

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
Jan 21, 2010
25,510
Joined
Jan 21, 2010
Messages
25,510
Looking at my crystal ball, I see that the original testing was done with a nicad pack, and the fault developed when it was connected to a car battery.

If that is true, then the reason it didn't show up on the breadboard is that the nicad pack simply couldn't supply enough current to kill the devices.

55p covers pretty much everything else.
 

55pilot

Feb 23, 2010
434
Joined
Feb 23, 2010
Messages
434
Your crystal ball may be right, but there is another reason. The Ciss to Coss ratio on the MOSFET is about 3:1. This means that if the voltage swing is 7.2V, the phantom gate voltage is about 1.8V, which is not enough to turn on the MOSFET. When you bump the voltage to 12V, you are now looking at 3V at the gate (less due to the gate resistor), which is enough to turn on the MOSFET.

So, besides not having the current, 7.2V is not enough to induce phantom turn-on on THIS particular MOSFET.

---55p
 

wdancer

Mar 12, 2010
18
Joined
Mar 12, 2010
Messages
18
You sir, are awesome. This gives me a bit more to think about. I am trying to get this project done within a month. I am working with a start-up and this is the first motor controller I have ever designed from scratch. I have usually been lucky to find off the shelf items I can quickly modify to my needs. Not so here. No one makes servos that interface to an RC receiver and has 80 in/lbs of torque.

I know my board layout is solid (since it worked at the lower voltage) and just cut the traces to the other pads. I'll look into your suggestions for the MOSFETs and the driver IC. I have already been using heat sinks and my design has a 80mm fan over them for active cooling.

I chose those FETs because I like overkill. I thought it would be handy in case I ever hit the stall current of 45A, I wouldn't kill the driver board. This project is making me feel a little dumb. I am finding things work very differently at higher currents than what I am used to in the nice low-power digital circuits I usually do.
 

55pilot

Feb 23, 2010
434
Joined
Feb 23, 2010
Messages
434
So the ultimate goal of this project is to replace the motor in a standard RC servo with a much bigger motor with more torque. You did mention that earlier and I am the one who missed it. My fault.

Sorry to report, but you are likely to have more problems after you conquer the H-Bridge. The controller IC in the standard servo receives the PWM from the RC receiver, looks at the feedback from a pot connected to the output of the servo and drives the A & B outputs, which drive the motor controller which drives the motor till the pot is in the position commanded by the PWM. There is a name for all of this. It is called closed loop control.

In order to implement closed loop control, the controller has to be tuned to the load it is driving. If the control is not too aggressive and the load is reasonably benign, you can get away with making some very broad assumptions about the load and getting decent performance. You can actually get away with that in most cases, as long as you make good assumptions about the motor and the load and that is how most motors are driven.

Those assumptions are unlikely to hold as you scale up the motor as much as you have. The larger motor is going to have more inertia and more slop in the gear train which will mess up the control loop. If the controller is implementing a simple control where it runs the motor at full speed towards the desired position till it gets close enough and then shuts it off, you are likely to have problems. When you turn off the motor, even with dynamic braking, it is likely to overshoot through the dead band and cause the driver to drive it in the other direction. If there is any play in the gear train, the motor has to turn a bit to take up the slack and by the time the pot gets back into the dead-band, the motor is going full throttle and will overshoot in the other direction. If this happens, the motor will chatter and both the motor and the driver will get very hot.

If the IC actually implements a tuned PID control (Proportional, Integral, Derivative control) algorithm, it may perform better or it may go unstable and start to oscillate fairly wildly. Your highest risk is that things look good in testing, till you attach the load and change the dynamics and the controller goes unstabl,e wildly oscillating the motor hurting someone.

It is quite likely that you will discover that you will also have to replace everything in the servo including doing your own micro-controller with an appropriate control algorithm. It is not that hard if you are familiar with the issues. If not, you have a lot more learning ahead of you.

The "working with" suggests that you are a consultant for the start-up. I hope you bid the job on per hour basis and not by the project!

---55p
 

55pilot

Feb 23, 2010
434
Joined
Feb 23, 2010
Messages
434
I know my board layout is solid (since it worked at the lower voltage)
All that tells you is that the board is wired correctly for DC, according to the schematics. It does not tell you anything about the AC performance or the current caring capacity.
I chose those FETs because I like overkill. I thought it would be handy in case I ever hit the stall current of 45A, I wouldn't kill the driver board.
My long discussion earlier about MOSFET issues assumed that all you were doing was 6A. That is 6A stall current, 6A instantaneous current, 6A as the worst case current period. If you are even thinking of handling 45A, there are a whole lot of other considerations that come into play and the phantom turn-on issue and the driver requirements get A LOT worse.

At those currents, you have to start worrying about L*dI/dt. If I (the current) is large, it allows for very large dI/dt (change in current over time) and all of a sudden a little stray L (inductance) in the nano-Henry range becomes big enough to kill the board. At 45A, a 0.1 ohm stray resistance in the board and cabling gives you 4.5V voltage drop which is more than enough to turn on a MOSFET.

The dynamic braking current from that kind of a load needs to go somewhere. Do you have sufficient capacitors or a power supply capable of handling back-driving?

---55p
 
Last edited:

wdancer

Mar 12, 2010
18
Joined
Mar 12, 2010
Messages
18
I was hoping to get lucky with the RC servo. I had seen it done before, so they must have gotten lucky. I really did not feel like designing a PID system.

Since I pretty much have to start from scratch, I am going to try out the VNH2SP30-E from ST Micro and use a PIC or an Atmega microcontroller to control the PID loop. It has a current limiter, so I won't have to worry about burning the controller up if it stalls which I don't expect to happen.

My motor has a peak efficiency of 6.6 in/oz. of torque @ 6.6A. My gearing (after calculating efficiency) brings that to almost 3200 in/oz of torque at peak efficiency of the motor (twice what the mechanical engineer requested).

With Kt= 0.94 oz-in/A 6.6 mN-m/A, and the 30 amp current limit from the controller, that will give me 28.2 in/oz for a total of 18000 in/oz. Waaaay more than enough. The project will already have been ripped apart at that point and I can blame the ME :)
 
Top