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.

Looking for an H-bridge

Status
Not open for further replies.
Hi, i tried to design many h-bridges and i found many faults in them and im in the need of a working one using MOSFETS not BJTs , the problem is its too hard to drive the MOSFETs correctly ... do someone has a working one cuz i want to send it to the pcb company and made it ... ? i googled i found some circuits but they cants stand more than 5A, and also im not sure whether they can work or not...

Thanks !
 
It's harder to drive BJTs because they need continuous base current rather than just a gate pulse current like MOSFETs to charge up the gate capacitance, after which no more current is required.

What are you having problems with? Providing the current pulse? The high-side gates of the FETs? (you will run into that problem with BJTs too). If you are and your voltages are 15V or below, you can use PMOS for the high-side and NMOS for the low-side (rather than all NMOS) to greatly simplify things at the cost of a bit of efficiency.

And what faults did you find?
 
HI, my intend supply voltage VS for motors is 24V... that's why its hard , i got this bridge from audioguru and redrew it , someone experience told me it has a problem ( dead time) and dont how to solve it anyway ....
 

Attachments

  • h-bridge.PNG
    h-bridge.PNG
    15.6 KB · Views: 1,277
What frequency are switching at?
 
Last edited by a moderator:
Shootthrough (or cross conduction) is a problem in any bridge (whether BJT or FET). It's when you turn off and turn on a pair of transistors in a half bridge at the same time, and because transistors take longer to turn off than turn on, you get a point when both transistors are on that produces a short-circuit.

You can control this by independently controlling all the transistor gates so you can shut one off, wait a bit, then turn the other one on. THe time you wait to make sure the first transistor is off before turning on the second is called dead-time. Your circuit uses a single signal to control both of them so you can't do this. But I think if you place the right gate resistors, you can slow down the time they turn on at (and turn off as well) to make it less of a problem. I don't know much about sizing the resistors or exactly where to put them, but someone else probably knows more.

You might want to place diodes across each MOSFET too (I'm sure you know why by now, please ask if you don't). But at 5A and such a slow switching frequency you may be able to get away with using the parasitic diode inside your MOSFETs (as shown in your schematic).

WHy does your motor have 3 pins and one goes to ground?

Other than that, I don't see any problems with your circuit (except that your resistors might be need to be sized a bit differently). Give yourself more credit!

EDIT: I think you have a bad connection on the bottom right transistor's pin 2 where the wires jump over each other. I think it connected on it's own when it shouldn't have.
 
Last edited:
So i've to take control of the 4 MOSFETs sepratelly ? and hence make two on and delay and the other two off ?

anymore modifications needed ?
 
Yeah, make 4 of your driver "BJT + pull-up resistor" gate drivers and drive each independently from a pin on the MCU. THen code it to have dead-time (and some MCUs like dsPICs have this feature built in, you just have to tell it what dead-time you want).

BUt you don't have to control them separately. YOu can google around and try to find out how ti implement dead-time with resistors and capacitors and add them to your current circuit. Or you can change your gate driver to some ICs that take care of the problem for you.

If you haven't already figured this out, the be dead-time would apply to when you were switching the transistors in the left PMOS/NMOS pair, and when you were switching the transistors in the right PMOS/NMOS pair (each half-bridge would have it's own dead-time for the transistors in that half-bridge). It's delaying the when the second transistor turns on to make sure the first transistor was off completely after the command to turn off was sent.
 
Last edited:
You can try logic gate delay. Most H-bridges I've made involved two three-input AND gates and three invertors. The three-input AND gates get a direction, enable and PWM. look up logic gates. One advantage is that you can make it so a short is impossible.

Good luck!
 
thanks for the reply, how about this schematic ? what if i want to use a more than 12V , and i know there's a max Vgs (+-24V)for the mosfets .. how can i solve this problem ?
 

Attachments

  • h-bridge.PNG
    h-bridge.PNG
    19.2 KB · Views: 1,074
For your circuit, if you want to use it with >12V, just disconnect your 10K resistors from the H-bridge supply and connect it to a separate 12V.

You have a bad connection on the bottom NAND gate. I don't think your NAND gates will not protect from shoot-through. What they do right now is stop all 4 FETs from being on, but they won't stop the High and LO FETs on each side from both being on for a short-time between switchings.

I never noticed this before, but wIth your current setup where signal pins are divided left/right you have to PWM both of them at the same time perfectly to prevent shoot through since every transistor will switch every PWM period. Do you see why this is? It's because you cannot shut a transistor off without turning another one on.

If you made the 2 control signals forward and reverse, rather than divide them up between left and right, it would ELIMINATE shootthrough problems (just when you switch directions wait a bit while all transistors are turned off to make sure they are off before reversing direction). Also, with that way you only need to PWM one pin to get the motor to move while the other pin is simply held low.
 
Last edited:
Nice idea , many thanks ...
anyway , can this circuit work ? cuz i will send it to the pcb company without testing it , i really dont have anytime for testing ... i spent too much time on h-bridge circuits .. and i will rely on ya :) so please tell me if it can work or has a probability of not working?
 
I edited my post as you replied, please read it again because it has something very important in it. I spend forever on my H-bridge circuits too.

EDIT: I edited my post again. WIth your control scheme, the shoot-through would be eliminated if you changed switched around the control signals to what I described in my last post. The only shoot through that could occur then would be when switching directions. But that's easy- just turn off all the transistors and wait a bit to make sure they are turned off before applying the signal to change direction.

NOTE OF INTEREST: If you didn't realize this yet, your left/right control scheme makes it so that PWM 50% duty cycle is stop and >50% duty cycle is forward (or reverse), and <50% is reverise (or forward). You basically send complimentary PWM waveforms down both control pins- that is the only way to control your circuit the way you have it set up. That means your circuit if basically a one-pin control circuit, you are just missing an inverter at the beginning of one control pin. But it has to be perfect to prevent shoot-through in a PERFECT CIRCUIT where the PMOS and NMOS all behave exactly the same way (which of course they don't). So in a real circuit you will definately always have some shoot-through which is very bad since PMOS and NMOS turn on and off at different speeds, and they even turn off differently than when they turn on.

If you changed the wiring scheme to forward/reverse, then one pin one be forward and the other pin would be reverse, with the speed varying with the duty cycle from 0% to 100%.
 
Last edited:
So the soultion is to P2.6=1; delay(); P2.7=0; Motor Goes forward .
when i want to reverse P2.6=0; delay(); P2.7=1; is this what you mean ?
 
Yes, but if you did that you would have to change your gate drivers so that a single control line would turn on/off the PMOS and NMOS that make the motor go forward (and another control line would make the motor go reverse).

ie. Each control signal controls a diagonal NMOS and PMOS pair, and turns them both on/off (not one turns on and one turns off).

THe most straightforward way I can see of doing this is to use your current "NPN+pull-up resistor" gate driver, but have 4 of them, and use inverters on base of the NPN for all the PMOS drivers (or the all NMOS ones, it doesn't matter).

That way, the same control signal will turn a PMOS on and an NMOS on, rather than turning one on while turning the other off.
 
Last edited:
If you are going with the single-pin control, just mind the shoot-through. It may become a problem. You can reduce it's effects by adding in one resistors at the drain of each transistor, but of course, that will decrease efficiency.

Also, use bigger than normal MOSFETs that can handle the shoot-through current without overheating and beign destroyed. ANd don't use a PWM frequency that is too high. THis will also reduce shoot-through since it will happen less frequently since you are switching less.

(You can also try doing what I described in my last post).
 
Last edited:
Hi , i changed the circuit and used 4 transistors with inverter , i think its now can work 100% ?
 

Attachments

  • h-bridge 2 2 .PNG
    h-bridge 2 2 .PNG
    22.4 KB · Views: 774
Place each inverter in front of the BJT base resistor for each PMOS so that the inverters do not affect the NMOS gate drivers. This will make it so that a HI signal will turn the PMOS rather than a LO signal (so the PMOS will behave just like the NMOS for the same control signal).

Then take the top-right PMOS and the bottom-left NMOS and connect their gate drive circuits together.

Do the same thing with the other two MOSFETs.

Do you see how this works?

EDIT: I added a schematic of what I mean. You can move the inverters from the PMOS to the NMOS. You probably should actually, since right now you have to apply a LO to the forward (backward) control pin to get the motor to move. If you move the inverters to the NMOS, then the logic isn't inverted anymore, and applying a HI to the forward (backward) pin will make the motor move.

(My PMOS's are upside down and so they are connected the wrong way. THe ones in your schematic are connected the RIGHT WAY. So don't change them.)
 

Attachments

  • Image1.gif
    Image1.gif
    16.3 KB · Views: 584
Last edited:
Status
Not open for further replies.

New Articles From Microcontroller Tips

Back
Top