I'm relatively familiar with the working and biasing calculations of Bipolar Junction Transistor. However, this is my first time using a MOSFET and I'm not sure how to use a MOSFET as a switch. My main concern is how to ensure that the MOSFET is in saturation. (i.e fully on). Should I just connect the gate to the source to make the gate voltage equal to the source voltage?
The current I want to control is around 10 - 15 A. It's for my coilguns' solenoid and the current should be in the form of a pulse, a few milliseconds in duration.
To use a MOSFET as a switch, you have to have its gate voltage some voltage (Vgs) higher than the source. If you connect the gate to the source you are ensuring the MOSFET is off (Vgs=0).
The MOSFET you selected (IRFZ44N) is a "standard" MOSFET and only turns on when Vgs=10V or higher (up to the maximum rating of 20V, which you should stay away from), so 10V-15V is common for Vgs for this type of MOSFET.
If you want to drive this from an Arduino, which only outputs 5V, you will need a "logic-level" MOSFET. For this type of MOSFET, Vgs=5V is enough to turn it on. For example, the ST STP55NF06L would be appropriate and is comparable to the IRFZ44N, except the STP55NF06L is logic-level.
You should also have a resistor in series with the Arduino output to limit the current, since the MOSFET gate is highly capacitive and can draw a big instantaneous current when you try to turn it on (or off). 220 ohms or so is appropriate.
--
The Ruggeduino: compatible with Arduino UNO, 24V operation, all I/O's fused and protected
I have a couple of questions:
Where did you find the Vgs value of 10V? I can't seem to find it on the Datasheet.. maybe I'm not looking for the right attribute.
Is it possible to use a separate driver circuit to provide the required Vgs?
When designing with MOSFETs be aware that instead of having a Vsat like a bipolar transistor, a fully-saturated MOSFET acts as a low-value resistor. Say you are switching 10A in a 12V circuit. And lets suppose you only want to waste 0.5V across the MOSFET, then its on-resistance (Vds(on)) should be <= 0.05ohms (0.5V / 10A)
If the device you choose has 0.05ohm Vds(on) and carries 10A then it will dissipate I^2R watts, ie 10x10x0.05 = 5W. This will need a good heatsink if for more than a second or two, but not at issue if millisecond pulses every few seconds. These days on resistances of 0.2 to 0.001 ohms are available (though less than 0.005ohms gets expensive).
Another thing to beware of in datasheets is Vthresh (threshhold voltage). This is not the gate voltage to turn the device on, its the gate voltage at which it switches fully off (less than a few uA of current, typically). If Vthresh is given as 2..4V range, it cannot be a logic level MOSFET (Vthresh is usually 0.5 to 1V for logic-level MOSFETs).
A logic level FET will have Rds(on) specified for Vgs=5V or 4.5V. If its only specified for Vgs=10V, its not logic-level.
And finally the abs. max current rating is usually the thermal limit with infinite heatsinking. So a 20A MOSFET is not a good choice for carrying 10A, a 100A MOSFET is a better choice as you won't need a large heatsink and fan(!).
Where did you find the Vgs value of 10V? I can't seem to find it on the Datasheet.. maybe I'm not looking for the right attribute.
It is on the second page of your datasheet, in the Rds(on) row (third row). This lists the on-resistance under the condition that Vgs=10V (and ID=25A). If there is no rating for Rds(on) when Vgs=5V (or 4.5V), then it is not a logic-level MOSFET.
Is it possible to use a separate driver circuit to provide the required Vgs?
Yes, if you use a MOSFET driver chip like a TC4427. You could also use "regular" transistors (BJT's) to construct a current/voltage amplifier (essentially what the TC4427 does) and then either use a logic-level MOSFET or a standard MOSFET if you have access to a 10V-15V source for driving the gate.
--
The Basic Motor Driver: simple, inexpensive motor driver for 1 stepper motor or 2 DC motors
Thanks everyone.. that was some very useful information.
RuggedCircuits:
To use a MOSFET as a switch, you have to have its gate voltage some voltage (Vgs) higher than the source. If you connect the gate to the source you are ensuring the MOSFET is off (Vgs=0).
I made a mistake there.. the gate should be connected to the drain shouldn't it?
The gate is connected neither to the drain, nor the source. The 47k resistor is there to bleed any charge that accumulates on the gate through leakage paths.
--
The Rugged Motor Driver: two H-bridges, more power than an L298, fully protected
The gate is connected neither to the drain, nor the source. The 47k resistor is there to bleed any charge that accumulates on the gate through leakage paths.
Thanks for the link. I was referring to a method of getting the MOSFET into saturation, just as a proof of concept. I saw the schematic I'm referring to on this page. http://www.electronics-tutorials.ws/transistor/tran_7.html ("section 2. saturation region")
In the example you linked to:
"An example of using the MOSFET as a switch" section is what we're talking about.
The important thing is that unless you have a good "logic level gate" FET, you need to take the Gate voltage up to 10 or 12 volts to turn the FET on hard.
At the risk of looking like a broken record because I've put this up a lot lately, here's how to use the good old 555 'timer chip' as a FET driver for 12 volts:
Why/How this works: Look at the 555 Block Diagram:
The "control" input can fix the reference voltage of the bottom two 5K resistors. Then when your Arduino output drives both the "threshold" and "trigger" inputs, the output will switch HIGH when the IN signal is above the reference, and switch LOW when the IN signal is below .5 of the reference. If you use 2 silicon diodes as shown then the switching points are about 1.4V and about 0.7V with a nice "schmitt trigger" action.
The 555 Output can drive both + and ground at 200ma and it's fast enough for any normal PWM frequency.
@terryking228 - sweet, never considered using a 555 for that before. What I have been experimenting with, is using a LM339 comparator for something similar. Any comment on the respective advantages / disadvantages of using a 555 versus the LM339 for this?
Hi, The LM339 has "open collector" outputs and can only 'pull' down towards ground and only 18ma. The 555 can drive strongly both high and low (200 ma).
If you want to do some comparisions, like doing PWM based on current, etc. the 339 is great.
I made a controller for my kids car with a 555 as a sawtooth wave generator, a 339 comparator with a foot-operated pot for the Pulse width control, and another 555 as the FET driver. When my shipment ever gets to my new place, I may be able to find the schematic in my notebooks...
Gnarly. I'm totally going to go over to the hackerspace tonight and breadboard this 555 driver approach and try it out. This will be really handy for working with the non-logic-level MOSFETs they carry at Radio Shack.
I'm planning to order some real logic-level MOSFETs soon; but learning to interface these IRF510s with an Arduino has been a good learning experience.
There has been several threads lately about using a MOSFET as a switch.
Could someone eksplain the pros and cons of the solutions, mainly when dealing with non logic FET's, and how to ensure the gatevoltage reach the point for saturation.
I Think we have seen
Use a transistor BJT
Use a 555
use a optocoupler
I think #3 seems like the simplest solution, but i am by no means an engeneer (thats why i ask for your opninion :D)
The opto-coupler is a good solution. If the gate capacitance isn't too high, the 4N35 can pull the gate up "ON" quickly. a resistor pulling it down won't be quite as fast.
RuggedCircuits:
It is on the second page of your datasheet, in the Rds(on) row (third row). This lists the on-resistance under the condition that Vgs=10V (and ID=25A). If there is no rating for Rds(on) when Vgs=5V (or 4.5V), then it is not a logic-level MOSFET.
Yes, if you use a MOSFET driver chip like a TC4427. You could also use "regular" transistors (BJT's) to construct a current/voltage amplifier (essentially what the TC4427 does) and then either use a logic-level MOSFET or a standard MOSFET if you have access to a 10V-15V source for driving the gate.
--
The Basic Motor Driver: simple, inexpensive motor driver for 1 stepper motor or 2 DC motors
Can I ask a question here?
I am trying to check some info from this datasheet (IRFZ44N): http://www.infineon.com/dgdl/irfz44n.pdf?fileId=5546d462533600a40153563b3575220b
The graph "Fig 1. Typical Output Characteristics" shows that on Vgs=4.5V we can get ~9A.
Is that correct? So we can fire this MOSFET even using 4.5V, but we can only get max 9A?
Am I thinking right?
Thanks!
Firstly its "typical" which means some devices will be better, some worse, and you don't know the
spread, so its not a guarantee or contract about the device behaviour, just a rough guide.
Secondly that 9A is with the drain-source voltage at 20V, so the device is dissipating 180W at that point.
Even at 6A and 0.4V on that line its 2.4W, whereas properly on the device dissipates 0.6W for 6A
Thirdly this device has a threshold voltage (the switch-off point) specified as between 2.0 and 4.0V.
This means it won't be properly on till at least 7 or 8V or so. Its on-resistance is specified for 10V, and nothing
less. This is not a logic-level device.
Also note the large variation in the off-threshold - this is due to the impurity ions in and around
the gate electrode creating a space-charge in the device, a hard-to-control parameter. As devices age
you get ion-migration in the gate, so the threshold will change with time. This means the graph in
figure 1 will vary markedly between devices and for a given device over time.
For 5V operation use a logic level device where the on-resistance is specified for Vgs = 4.5V, not just for 10V.