Hi,
Long time reader of this forum, but my first post. Firstly I'd just like to say thanks for all the work on the Arduino project, it's such a great little device!
I need to be able to drive a 24v 120 watt motor from an Arduino. I've attempted to wire up a H bridge, but for some reason (possibly incompatible MOSFETS or not enough gate voltage) it kept shorting out. I have 5 x FQP50N06L, and hordes of IRFZ44Ns. I also have several L298Ns, which I'm using to boost the voltage from the Arduino to power the MOSFET gates. The L298 can handle upto 50v.
AFAIK, to use the IRFZ44N channel MOSFETS on the high side of the H bridge, I need to push the voltage to around 36volts on the gate. The FQP50Ns only need about 29volts to fully turn them on (they're logic level MOSFETs). Unfortunately I'm struggling to find a charge pump that can push the voltage that high, and I'm not really sure whether the gate voltage is causing the problems I'm getting. From what I've gathered, the MOSFETS shouldn't be on at all unless there's at least some voltage at the gate, but mine seem to allow current to flow across them even when the gate's grounded, making them rather hot!
I was thinking about using a 9 volt battery in series with the 24volt supply to push the voltage through the L298 to about 33 volts. However, I'm also not sure if the MOSFETS I'm using are suitable for use in the H bridge I'm trying to create.
If anyone's got any suggestions on what MOSFETS, charge pump or perhaps MOSFET driver I should use, or whether I'm doing something hideously wrong, it'd be much appreciated. Thanks!
Both transistors you posted links to are n-channel. Things would be much easier for design if you build a bridge with two n-channel and two p-channel complementary mosfet's.
Look on design #6 to start with: http://www.talkingelectronics.com/projects/H-Bridge/H-Bridge-1.html
You could simply use this approach: http://arduino.cc/forum/index.php/topic,68777.0.html
If you want to use only n ch FET's then you have to use mosfet driver that uses bootstrap BUT in that case you need arduino to output PWM 2-98% in order for bootstrap capacitor to keep it's charge and drive fet's gate properly.
I did attempt the H bridge with two P80PF55 P-Channel MOSFETs, but I seem to have fried three of them in the process. Fried my finger too... Oops Not quite sure what was going wrong, but it was still shorting out, and making them rather hot. The P channel ones also aren't as efficient from what I've read, and with a 120w motor, it's best if there's as little heat produced as possible. Thanks for the link though, through all my days of Googling I never managed to come across that page! I'll have a go at design 6, though I'll substitute the P channel MOSFETs for FQP27P06s, as they're much cheaper. Would they still be compatible? They're logic level instead.
I had a look at that previously, but the MC34152 is hard to find, and I wasn't sure what to substitute it with. The PWM limiting wouldn't be any problem. Any ideas as to what IC I could use instead of the MC34152?
If you are willing to spend 25USD then you can order those from ONsemi as free samples (along with plenty of other stuff). 25 is for shipping and handling fee.
As for bridge letting it's magic smoke out i would recommend trying that simple smokless bridge. If you wire it properly (since there's no resistors and only 4 transistors it's pretty easy) then there's no way you can fry it trough programming mistake. If you are using logic level FET's you can skip FET driver, but just for initial testing since arduino can't drive power mosfets very well. As for 120W motor - FET's don't even need heatsink for that (given that they are driven properly and have low RDS on + no PWM).
The P channel ones also aren't as efficient from what I've read,
Not sure what you mean but I am sure you have misunderstood that. There is no deficiency with P-FETs in general.
The only problem with design 6 is that:-
Input A HIGH, Input B HIGH - not allowed
Input C HIGH, Input D HIGH - not allowed
Not only that but if you do have this condition even for a fraction of a second you short out the supply and things get very hot.
That substitute FET looks fine though.
I'll have a go at design 6, though I'll substitute the P channel MOSFETs for FQP27P06s, as they're much cheaper. Would they still be compatible? They're logic level instead.
Yes, transistors look pretty good. They don't have to be logic level but it's not hurt ether.
To qwerty009:
. If you are using logic level FET's you can skip FET driver, but just for initial testing since arduino can't drive power mosfets very well.
That isn't correct, if you reference to design #6. Small signal transistor BC547 are driver / voltage level shifters and couldn't be excluded, doesn't matter of p-channel logic level or not.
qwerty009:
If you are willing to spend 25USD then you can order those from ONsemi as free samples.
I've just ordered quite a few things from them, thanks for the heads up.
Grumpy_Mike:
Not sure what you mean but I am sure you have misunderstood that. There is no deficiency with P-FETs in general.
The only problem with design 6 is that:-
Input A HIGH, Input B HIGH - not allowed
Input C HIGH, Input D HIGH - not allowed
Not only that but if you do have this condition even for a fraction of a second you short out the supply and things get very hot.
That substitute FET looks fine though.
I must have misread somewhere about the P-Channel ones, duly noted.
I'll make sure not to allow shoot-through nor allow the short-out conditions in my coding
Magician:
Yes, transistors look pretty good. They don't have to be logic level but it's not hurt ether.
Excellent. I've ordered some of those, so they should be here soon.
I'll let you know how I get on! Thanks again for everyone's help
Update on the circuit - after one hell of a lot of soldering, de-soldering and smoke tests, I did finally manage to get it to work. So thanks to everyone who helped! I had some weirdness going on with my Arduino and a voltage reg... If I disconnected the neutral from the battery but left the voltage reg and Arduino connected together, power would somehow find its way through the Arduino, to the transistors, turning them on... Shortly after, poof! But I solved that with a relay controlling signals to each half of the bridge, so the two pairs of MOSFETs could never both be both on.
I did however encounter a problem. The stall current on the motors is about 9 amps, which at 24v is too much for the FETs to handle. They quickly burn out, even with heatsinks attached. So, I've come up with a different circuit, with relays controlling the direction and three FETs in parallel to control speed (via PWM). If anyone could have a quick look over the schematic and offer any suggestions as to whether I'm on the right track, it would again be much appreciated.
If select MOSFETs with low Ron 9A should be doable - Ron less than 10 milliohm would be a good start (dissipation then limited to 1W ignoring switching losses).
As for the circuit watch out for Q4 overheating, it has 20V across it when on, depends on the relay winding current whether it will need heatsinking.
You need freewheel diodes across the windings and probably good to have a 10A (pulse rating) one from MOSFET drains to 24V supply to prevent avalanche breakdown in the MOSFETs when the relay switches - otherwise you'll need to work out whether the avalanche rating of the MOSFETs is being exceeded.
The gate resistor limits the speed the MOSFETs can switch which means you may have to use quite slow PWM frequency (Arduino default is quite low though).
They burn out because (assuming you have decent fets) they are not driven properly. If PWM to mosfets gate comes directly from arduino trough 220ohm resistor then i wonder that it works at all.