Pages: [1] 2 3   Go Down
Author Topic: Custom H Bridge Design  (Read 12968 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 44
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello folk,

I'm trying to design a custom H bridge to drive my motors.

They draw atleast 6.5 amps, running off a 12v supply. I'm using an arduino mega 2560, which I understand gives an output of 5v at 40mA.

I've had a go at designing a PCB board, and would like some advice.

I was wondering if someone could be kind enough to check my circuit and choice of components and make sure it would work? I've posted the datasheets of the components i've chosen. Each circuit has 4 diodes, 2 NPN mosfets and 2 counterpart PNP mosfets.

I've attached the circuit I want to create, my attempt on the PCB board, and the data sheets. I'd be very grateful...

Cheers.


* h-bridge.JPG (32.72 KB, 591x374 - viewed 563 times.)
* NPN mosfet.pdf (135.19 KB - downloaded 101 times.)
* 7.5A diode.pdf (134.39 KB - downloaded 46 times.)
* AUV_140x75 (PCB).pdf (18.24 KB - downloaded 63 times.)
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 44
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Have to add, you can see in the original H bridge schematic that there are CMOS 4011 Quad NANA drivers present in the circuit.

I'm not 100% sure how to implement these, but I found a schematic, which I've attached. It seems to be what I'm looking for?


* logic control.jpg (14.04 KB, 476x347 - viewed 136 times.)
Logged

0
Offline Offline
Faraday Member
**
Karma: 16
Posts: 2855
ruggedcircuits.com
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

The MOSFET's, for one, are not a good choice. Their on-resistance is too high (0.55 ohms). With 6.5A of current flowing their power dissipation could be as high as 6.5^2  * 0.55 = 23.2W. That will fry the MOSFET in short order.

--
The Arduino Drum Machine: 14-track MIDI drum machine sequencer / groove-box
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 44
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Rugged, thanks for that. I've chosen better mosfets based on what you said. The IRF3706PBF has a drain resistance of 0.0085 ohms, so i should dissipate 0.359W - which should be acceptable.

I also found this article, which has been really helpful:
http://www.modularcircuits.com/h-bridge_secrets1.htm

I understand the principle of having different quadrants active to get a desired function, but why all the logic gates? Why not just use the arduino to drive 4 pins in various configurations? The article tries to explain it but it's a bit much to wrap your head around.

I'm thinking it's along the lines of, the P type mosfets are 'on' by default, such that, when a gate voltage is applied, they're turned off? N types are simpler, they're off and supplying the 5v to gate turns them on - therefore the NAND gates are all about manipulating the logic appropriately.

I suppose then it's a choice of whether i actually NEED the P types, and whether or not my N types can do the job I'm asking of them...

KE7GKP, I agree regarding the PCB board - I'm just testing the water regarding PCBs at the moment. I used larger tracks (1.3mm) due to high current draw, and tried preserve the schematic as best as possible on the PCB.
Logged

0
Offline Offline
Shannon Member
****
Karma: 220
Posts: 12700
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Are you saying you're driving the FETs from a 4011 NAND gate???  That's a recipe for blowing up all of your MOSFETs.

High power MOSFETs have large input capacitances (20nF or so is the ballpark).  To charge up these gates fast enough (lets say 100ns for now) means a driving current of 2A per device.  The 4011 might be able to produce 5mA or so.  Thus the switching time will be 80us or so during which both top and bottom MOSFETs are switched on shorting out the power supply and perhaps drawing 100Amps from its filter/decoupling caps...

This is likely to fuse the MOSFETs, then the 4011, then the Arduino.

First piece of advice - protection circuitry is required between the Arduino signals and the H-bridge (even a 2k2 resistor in each signal line might be enough).

Second piece - switch the MOSFETs fast, something like a MIC4422 buffer is a good idea to drive that gate capacitance.  It can drive upto 9A which is plenty and it takes logic level inputs.  Certainly something more like amps than milliamps is necessary or your MOSFETs will spend lots of time in the linear region and overheat/burn.  You need lots of ceramic decoupling close to the gate-driver to do this successfully, at least ten times the combined gate capacitance.

Thirdly have suitable delays (hardware or software) so that it is impossible to have both the top and bottom MOSFETs on simultaneously.  This situation is called 'shoot through' and causes all sorts of chaos.  If you switch in 250ns or so the delay only needs to be a few hundred ns.

There are H-bridge driver chips that do all the work for you BTW, like the HIP4081, and they let you use all n-channel MOSFETs.

You should also be aware of the Open Source Motor Controller project http://www.robotpower.com/osmc_info/
Logged

[ I won't respond to messages, use the forum please ]

0
Offline Offline
Tesla Member
***
Karma: 147
Posts: 9741
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
There are H-bridge driver chips that do all the work for you BTW, like the HIP4081, and they let you use all n-channel MOSFETs.

Well, maybe not *all* the work:

"The HIP4080 and HIP4081 H-Bridge Driver ICs require
external circuitry to assure reliable start-up conditions of the
upper drivers. If not addressed in the application, the
H-bridge power MOSFETs may be exposed to shoot-through
current, possibly leading to MOSFET failure. Following the
instructions below will result in reliable start-up."
Logged

Consider the daffodil. And while you're doing that, I'll be over here, looking through your stuff.   smiley-cool

0
Offline Offline
Shannon Member
****
Karma: 220
Posts: 12700
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

On reflection I think I may have sounded too negative above, but I know from experience that when high current switching is involved there is little margin for error - when testing circuits definitely limit the current initially with series resistors and look for issues like shoot-through and voltage and current spikes before letting the high currents flow - even a beefy device is going to fry very quickly if you let it directly short the supply.  You need to spend time thinking about failure modes and protection circuitry.
Logged

[ I won't respond to messages, use the forum please ]

0
Offline Offline
Newbie
*
Karma: 0
Posts: 44
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks for the advice, very informative.

Quote
First piece of advice - protection circuitry is required between the Arduino signals and the H-bridge (even a 2k2 resistor in each signal line might be enough).

I can understand how a resistor would limit the current flowing in the circuit, but wouldn't that also waste alot of energy - energy that i'm trying to use to drive the motors?

Edit to add- No it wouldn't, because the resistors would be in the logic lines and not in the loop that drives the motors!!

Quote
Second piece - switch the MOSFETs fast, something like a MIC4422 buffer is a good idea to drive that gate capacitance.  It can drive upto 9A which is plenty and it takes logic level inputs.  Certainly something more like amps than milliamps is necessary or your MOSFETs will spend lots of time in the linear region and overheat/burn.  You need lots of ceramic decoupling close to the gate-driver to do this successfully, at least ten times the combined gate capacitance.

Yeah I found out a bit about this later, the technician i spoke to recommended something similar ( due to current output ) so I'm trying to source on at the moment. Although the chip you suggested does look ideal - but is it available to buy?

Quote
Thirdly have suitable delays (hardware or software) so that it is impossible to have both the top and bottom MOSFETs on simultaneously.  This situation is called 'shoot through' and causes all sorts of chaos.  If you switch in 250ns or so the delay only needs to be a few hundred ns.

Hmm, I think I understand what you are saying. Basically, whenever I want to utilize the other two FET's, make sure I leave suitable time between turning two of them off, allow all current to leave the circuit, before turning the other 2 on? I don't think we're going to be doing running the motors using PWM so the only chance that 'shoot through' will occur is when changing directions, I presume.

Quote
There are H-bridge driver chips that do all the work for you BTW, like the HIP4081, and they let you use all n-channel MOSFETs.

You should also be aware of the Open Source Motor Controller project http://www.robotpower.com/osmc_info/

Yeah, ideally I'd like a solution I could just buy - but they cost too much. We're looking for 6, so even at a tenner each that's still £60 + delivery - double the price of making 6 of my own...

Again, thanks for the feedback.

Logged

0
Offline Offline
Shannon Member
****
Karma: 220
Posts: 12700
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Hmm, I think I understand what you are saying. Basically, whenever I want to utilize the other two FET's, make sure I leave suitable time between turning two of them off, allow all current to leave the circuit, before turning the other 2 on? I don't think we're going to be doing running the motors using PWM so the only chance that 'shoot through' will occur is when changing directions, I presume.

In that case you might get away with it because the average power dissipated will be low - be aware though that the high-current spikes will potentially cause odd problems.   You can easily boost the gate drive current with a pair of transistors as emitter followers BTW - see this application note http://www.diodes.com/_files/design_note_pdfs/zetex/dn80.pdf
Logged

[ I won't respond to messages, use the forum please ]

0
Offline Offline
Newbie
*
Karma: 0
Posts: 44
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks. That seems like a useful way of doing it.

I'm actually a mechanical engineer (soon to be) and our project this year has involved a bit of electronics which I stupidly volunteered to do! We don't have much of our budget left so I'm trying to do this the simplest (and cheapest) way possible, without risking damage to the arduino.

I've stumbled across this thread on the old forum:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1249661296 and I noticed the chap uses capacitors in the circuit (specifically 1 at ground) and I was wondering if someone could explain why, and suggest a suitable capacitance for this application.

I'm thinking now about just using four N-type mosfets for simplicity. I have some mosfet drivers (but none with voltage inverter capability) and I'd need those to run the P-type mosfets. It's dragging on a bit now and I just want to get it done.

I think i'll spend the weekend on this and if i can't get it running I might go for plan B and use DPDT relays instead, as we only have about 4 weeks to get this finished.




Logged

0
Offline Offline
Faraday Member
**
Karma: 16
Posts: 2855
ruggedcircuits.com
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

What capacitors? I don't think you want any capacitors in there except maybe across your power supply (close to the H-bridge) to smooth out the voltage to the motors.

Given the other info you've mentioned, I would suggest getting an off-the-shelf motor driver. Whatever you cook up using MOSFET's and cobbled together circuits from the Internet are quite likely to smoke if you even get something the slightest bit wrong. Electronics, unlike mechanical systems, are very unforgiving. MOSFET's especially are very sensitive to electrostatic discharge and I have yet to see a soon-to-be engineering student have the proper respect for this.

You want a 12V 10A motor driver. Buy it. You will spend more money trying to build your own and your project will be late.

--
The Gadget Shield: accelerometer, RGB LED, IR transmit/receive, speaker, microphone, light sensor, potentiometer, pushbuttons
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 44
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Why don't you be a bit more negative, haha!!   would love to buy one off the shelve but at ~£20 each they're too expensive. We need to drive 6 motors in forward and reverse, so if I can't get this H Bridge to work, I'll use the relays.

Not a soon to be engineering student, I graduate in May, but we've only touched on the basics of electronics and it was very early on the course.

At the moment, I have the following:
5 x P-type FQP27P06X
10 x N-type IRLU8726
10 x STPS745D 7.5 A Diodes.

And I have 6 high current mosfet drivers, but non with inverting capability, so like I said, i think i'll try and get it going with an N type in each quadrant. As has been suggested, I'll put 2k2 resistors in each of the logic lines. I'll have a bash over the weekend.
Logged

0
Offline Offline
Faraday Member
**
Karma: 16
Posts: 2855
ruggedcircuits.com
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Why don't you be a bit more negative, haha!!   would love to buy one off the shelve but at ~£20 each they're too expensive. We need to drive 6 motors in forward and reverse, so if I can't get this H Bridge to work, I'll use the relays.

I speak from experience smiley  If you can get this working without relays I'll be the first to line up and congratulate you.

Your MOSFET choices look OK but you don't have enough for 6 motors.

What "high current MOSFET drivers" are you using?

--
The Aussie Shield: breakout all 28 pins to quick-connect terminals
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 44
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Yeah, I realise what I'm trying to do isn't easy but better to have tried and failed and all that :-P


I don't the part number here at the moment, the datasheet is at uni, but we wanted something similar to this:
http://www.national.com/ds/DS/DS0026.pdf (which unfortunately is now obsolete).

I'll post the datasheet of the one we've bought first thing tomorrow morning.

Yeah I only bought the minimum spend at first to try and get one working on a breadboard. If all goes well, I'll order the rest of the components, enough for 6.
Logged

0
Offline Offline
Faraday Member
**
Karma: 16
Posts: 2855
ruggedcircuits.com
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
I don't the part number here at the moment, the datasheet is at uni, but we wanted something similar to this:
http://www.national.com/ds/DS/DS0026.pdf (which unfortunately is now obsolete).

That type of part will not work for an H-bridge with all N-type MOSFET's. The "upper MOSFET" driver must turn on the gate relative to the MOSFET's source terminal, which is not ground.

You will either need to mix P-type and N-type MOSFET's or use something like an HVIC driver (e.g., Fairchild FAN7382 or similar).

--
The Quick Shield: breakout all 28 pins to quick-connect terminals
Logged

Pages: [1] 2 3   Go Up
Jump to: