MOSFET for DC motors

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.

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? :~

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.

tocpcs:
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? :~

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.

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 ?

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...

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.

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.

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.

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.

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)..

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.

tocpcs:
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.

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 ;))

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

tocpcs:
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!

You can get TC4420 gate drivers from http://au.element14.com/, although they probably have a minimum order value for non-trade sales (it's GBP30 in UK).

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

They look good for the job, however they need 10V gate drive, so you definitely need to use some sort of driver with them. The 3-transistor driver schematic I provided should be OK if you are using a low PWM frequency. It may even be OK at the default Arduino PWM frequency of 490Hz, however I suggest you start with a low PWM frequency (say 10Hz), and if the mosfets still run cool with the PWM at 90% then you can try a higher frequency. Ideally you would use an oscilloscope to look at the gate and drain voltages, then you can get a better idea of the energy dissipation when the mosfet turns on and off.

Don't forget to include a flyback diode across the motor. Its peak current rating needs to be at least as high as the motor stall current, so I suggest a 25A Schottky diode or similar (also available from element14).

Yeh, got the diodes (actually planned on soldering them to the relay bases originally).

With regard to heat sinks (I've calculated a probable 2W worst case to dissipate, I'm going with safe and adding them).
Thermal resistance is a measurement such as 8oC/W

2W gives me 136oC at 25 ambient to dissipate. It'll be higher than 25 ambient, so I need to lose around 110oC (if I work on 160oC and I want 50oC maintained, potentially higher)..
Would I not want a heatsink with a higher thermal resistance, such as 40oC/W ? I'm not sure why I'd want one lower (i.e. 8oC/W) but all my reading says to pick one with a 'lower thermal resistance'.

The lower the thermal resistance, the better the heatsink and the cooler the mosfets will run. So you calculate the maximum allowable thermal resistance of the heatsink, then select a heatsink with a thermal resistance no higher than your calculated figure.

You want the higher thermal conductance... For some bizarre reason heatsinks are rated by
thermal resistance rather than thermal conductance, its an accident of history.

BTW, what are these fans for?
In the past, most heater/blower fans had a set of series resistors to control speed. Most electric radiator fans and those for turbo cooling after the ignition is switched of are usually on or off.

As mentioned above, tuning the PWM frame rate is a good idea. Since you will not be running at particularly low speeds, it ought not be critical though.
A good trick is to apply full speed for a few frames to get the motor running. Having the MOSFET fully driven will help while passing through the stall condition. You may want a dab of heat-sink paste (less is more! you are filling the surface not adding a jam filling, and it may take several heat soak cycles before it's 'bedded in') and beware of "live" heat-sinks shorting.

The engine bay of a car is pretty hostile, note that crimp connectors will often outlast soldered joints where vibration it a problem.