Pages: [1] 2   Go Down
Author Topic: MOSFET for DC motors  (Read 2217 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Full Member
***
Karma: 0
Posts: 151
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I've got two automotive fans I'm wanting to drive from an arduino.

The fuse that supplies both of them is 50Amp.

So if I take that as the maximum both will draw, I plan to split the fans into two using MOSFETs.

I'm looking at the datasheet for the IRF1405 - and I think this will do, but I'm just tossing up whether I need to add a transistor and drive it using battery voltage or direct from the pins.
The datasheet is here:
http://www.jaycar.com.au/products_uploaded/zt-2468.pdf

I think I need a current limiting resistor between the arduino pin and the transistor - but how do I size that resistor?

See image for the circuit I'm planning to use - any problems / thoughts?
http://www.neufeld.newton.ks.us/files/electronics/mosfet-motor/MOSFET-motor-driver.png

The MOSFET is different in the schematic linked, so I wonder if the resistor values change compared to the jaycar one I linked to? (it can handle higher current so should be ideal with a transistor).

Also, the datasheet shows the gate threshold min max as 2 and 4 volts. Is 2 the off value and 4 the 'barely on' value - and 12 the 'it's full on' value?
Using the transistor (2n3904) - I'll want to get 4 - 12V modulating...
Logged

0
Offline Offline
Shannon Member
****
Karma: 206
Posts: 12048
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

150 ohm resistor - limit the Arduino pin current to below 40mA.

I doubt the fans pull anything like 50A continuous, but a heatsink for the MOSFET would be a good idea.

If you use that transistor level shifter then R1 is too high at 10k - use 560 ohms.

Logged

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

0
Offline Offline
Full Member
***
Karma: 0
Posts: 151
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks for the reply but I'm not sure on your values.

150 ohm to limit below 40mA, so 5 / 0.150 = 33mA - OK!

What happens with R1 - in the linked circuit it's a pull up resistor right? So a high value is intended to keep current low so that the transistor grounding wins - or have I got how that works exactly wrong?  smiley-confuse
Logged

Offline Offline
Faraday Member
**
Karma: 66
Posts: 2626
The last thing you did is where you should start looking.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Thanks for the reply but I'm not sure on your values.

150 ohm to limit below 40mA, so 5 / 0.150 = 33mA - OK!

What happens with R1 - in the linked circuit it's a pull up resistor right? So a high value is intended to keep current low so that the transistor grounding wins - or have I got how that works exactly wrong

5V - .7V(Vbe drop) / 30ma = 143.3 ohms
Lets say that HFE DC gain is 30 then .03A X 30 = 900ma maximum
if we use Rb=1K, Ic= 4.3/1000=4.30mA,  Ic=4.30mA X 30 = 129ma max
however 12V - .2Vce sat. /1k = 11.8ma will actually flow. Therefore the transistor is saturated and thus the FET will be turned off.
Logged

The way you have it in your schematic isn't the same as how you have it wired up!

0
Offline Offline
Shannon Member
****
Karma: 206
Posts: 12048
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks for the reply but I'm not sure on your values.

150 ohm to limit below 40mA, so 5 / 0.150 = 33mA - OK!

What happens with R1 - in the linked circuit it's a pull up resistor right? So a high value is intended to keep current low so that the transistor grounding wins - or have I got how that works exactly wrong?  smiley-confuse


You want to turn off the MOSFETs fast - the R1 10k pull up will take 250us to charge up the 26nF worst-case input capacitance - at high
current levels that 250us could mean POP!  Blown MOSFET.  You musn't leave MOSFETs switching high powers so long in the linear region,
the dissipation is potentially huge (a sizeable fraction of 12V x 50A here, worst case...).   If PWM'ing the MOSFET you will need a high
current gate driver to keep the average dissipation sensible - switching losses can easily dominate.
Logged

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

0
Offline Offline
Full Member
***
Karma: 0
Posts: 151
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

That's interesting, and perhaps introduces a design issue.

So in terms of program control I don't want to say - analogWrite(MOSFET, 127) for an hour?

I'm thinking of two MOSFETs to spread the amp load between the two of them to avoid the current issue - but from what you've noted the best MOSFET is the one sized to be fully on at the fan maximum ?
Is it a good idea to run a MOSFET at 100% for 2 hours (since it acts like a switch in that state)?
i.e. Is it better for heat reasons to use a large MOSFET and switch it at 50% duty - or is that still bad for it?

I'll take a look for a high current gate driver, but this is still all new to me - any links ?
Logged

0
Offline Offline
Shannon Member
****
Karma: 206
Posts: 12048
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So long as the PWM frequency isn't too high for the switching speed of the MOSFETs it'll be OK - but that means
checking the actual numbers - there should be some good guides/calculators on the net for calculating PWM losses in MOSFETs and
other switching devices...
Logged

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

0
Offline Offline
Full Member
***
Karma: 0
Posts: 151
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Using relay logic with two fans could I not have both fan outputs tied together to produce a medium fan setting (in series).
And then parallel for full speed?

I don't think the current controller is PWM as such as it's Medium and "High".
If I can electrically make them medium / high that'd be just as good...

Although the MOSFET idea is valid, I'm still not getting the current requirements right I think.
Logged

United Kingdom
Offline Offline
Tesla Member
***
Karma: 224
Posts: 6613
Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

It's difficult to give advice when we don't know how much current the fans take. Disconnect them and measure their DC resistance. Measure the resistance of each one several times, rotating the shaft a little between readings, and take the lowest reading you get. Divide that into the supply voltage (i.e. 12V, or 13.6V in an actual automobile in which the battery is on charge), and that will give you the stall current. Tell us what you find, and we can advice on the best solution. If the stall current is low enough, then a logic level mosfet driven from the Arduino pin with 2 resistors will suffice. For larger currents, if you want to use PWM then I suggest a non-logic-level mosfet driven via a TC4420 or TC4429 mosfet driver, to avoid the problem with slow switching times that has been mentioned.
Logged

Formal verification of safety-critical software, software development, and electronic design and prototyping. See http://www.eschertech.com. Please do not ask for unpaid help via PM, use the forum.

0
Offline Offline
Full Member
***
Karma: 0
Posts: 151
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Am I right with the following:
The datasheet shows Maximum permissible Power Dissipation of 330W.
The power dissipation for a MOSFET with RDS on specified as 0.0055 (5.5milliohms)  at 30A is (30 x 30) * 0.0055 = 3.43W
As 3.43W is below 330W this does not require a heat sink?

Seems too simple and given the expected current - I would think it needs one - but the above says not so much.

I'm working on the theory that I'll oversize the MOSFET and simply use a 169A MOSFET. As I am switching it,  and the current will always be below 169A - there won't be an issue in sizing.
The datasheet is here if it helps:
http://www.jaycar.com.au/productView.asp?ID=ZT2468
I'm looking for confirmation that using a 30A rated MOSFET such as IRF540N would not be better (I don't think it is because of greater RDSon) - but is there any other reason you'd not want to use a higher current rated MOSFET?

One for each fan.
Logged

United Kingdom
Offline Offline
Tesla Member
***
Karma: 224
Posts: 6613
Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

The 330W rating is a theoretical one with an infinite heat sink. At 3.43W static power dissipation, you will need a heatsink, but not a very big one. Alternatively, use 2 of those mosfets in parallel, then they will dissipate less than 1W each.

Those mosfets are not logic level, so you need to use some sort of driver to generate the required 10V gate drive. If you will be using PWM then I strongly recommend you use a proper MOSFET driver IC such as TC4420 or TC4429. Even with a driver IC, there will be some additional power dissipation due to finite switching speed if you use PWM.
Logged

Formal verification of safety-critical software, software development, and electronic design and prototyping. See http://www.eschertech.com. Please do not ask for unpaid help via PM, use the forum.

0
Offline Offline
Full Member
***
Karma: 0
Posts: 151
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I had using a simple transistor in mind.

In my travels the reason for a driver IC is to sink current fast - why not chuck a transistor in ? Not fast enough ? Not enough current (and if current - how do I calculate current required for gate)?

I can drive the MOSFET using batt voltage, and if I use 2 per fan (4 total), do I need two driver circuits total, one for all 4 or one each? (I guess current dictates that if current is the limiting factor)..
Logged

Offline Offline
Full Member
***
Karma: 5
Posts: 113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Use a transistor by all means, a low/highside drive would be better. You want a fast level change.

Don't forget that low on resistance only occurs when the device is fully driven. Switching provides a lot of time for when the device is not fully driven (rise & fall time) so a large potential for over heating.

If you can get the specs for the motor it will make choosing a FET easier, however, although robust when properly specified, they are easy to pop. So always over-specify (they are so cheap!) (I buy them by the tube) and use a heat sink. Try running for a moment and see if you notice a temperature rise.

Don't forget a (fast) fly-back diode!

And once again, read the specs and the manufacturers recommendations.
Logged

For whom does the clock pulse? It pulses for you!

United Kingdom
Offline Offline
Tesla Member
***
Karma: 224
Posts: 6613
Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

In my travels the reason for a driver IC is to sink current fast - why not chuck a transistor in ? Not fast enough ? Not enough current (and if current - how do I calculate current required for gate)?

When you are switching large amounts of power with a mosfet, you need to switch the mosfet on and off very fast. Power mosfets have high input capacitance, so you need to source or sink a lot of current when switching them in order to charge and discharge the get capacitance quickly. This is less important if you are doing just on/off switching, but very important if you are doing PWM.

You can use a single mosfet driver chip to drive several mosfets, but each mosfet should preferably have its own gate series resistor to share the current. The TC4420/4429 is rated at 6A output current, so if you are using 12V gate drive and 2 mosfets, then series resistors of about 4 ohms would be about right, to limit the peak gate current to 3A per mosfet.

For less demanding applications (e.g. no PWM, or mosfet with less input capacitance), the 3-transistor driver shown in the attached schematic will do. This has active pullup and active pulldown.


* Scan 130.JPG (65.32 KB, 1653x1165 - viewed 54 times.)
Logged

Formal verification of safety-critical software, software development, and electronic design and prototyping. See http://www.eschertech.com. Please do not ask for unpaid help via PM, use the forum.

0
Offline Offline
Full Member
***
Karma: 0
Posts: 151
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

PWM has switching of many times per microsecond.

What if one were to use a transistor and switch at say 100ms ?

Currently I plan to put it together with relays with a 20 second timebase using a percentage of time as the driving time for relays limited to 1 second on / off.

But MOSFETs would be better for driving them at a lower current.
So, if I drove them in software with a transistor such as:
digitalWrite(fan1, HIGH);
delay(100);
digitalWrite(fan1, LOW);
delay(900);

(The fan takes longer than 1 second to slow down smiley-wink)

This would be much slower than the analogWrite function yet still give reasonable results in driving the fans.
Is that workable, or is the current consideration in using the gate driver a problem?
Transistors are like 800mA, and gate drivers around 1A (I can't find a store in Au selling 6A gate drivers), in fact - this is the only gate driver I can find:
http://www.jaycar.com.au/productView.asp?ID=ZK8878
But it's 1A, I have 800mA transistors already!

I've already got the MOSFETs I plan to use:
http://www.jaycar.com.au/productView.asp?ID=ZT2468
Logged

Pages: [1] 2   Go Up
Jump to: