Logic Level MOSFET Question

Hopefully I am on the right subforum. I just want to clarify this basic idea, of which I know nothing, and want the ones with the knowledge to share them.

I have been reading a lot about BJTs and FETs, MOSFETs, Logic Level MOSFETs. Basically this is for switching motors on/off, not controlling the direction.

So, using MOSFET is one effective way at this. The basic idea I want to clarify is the difference, pros and cons between using common MOSFET as opposed to Logic Level MOSFET.

Can someone elaborate on this?

  1. One can control the current passing thru source to drain by controlling the voltage at the gate?
  2. Logic Level does not control the amount of current, but just turns fully ON and OFF the path?
  3. If the Logic does fully turn on the path, so the amount of current flowing from source to drain depends on the current rating of the MOSFET? Say 14A, therefore 14A will flow (thereby one needs resistor )? Or depending on the needs of the motor?

Hopefully the god members will clarify this. Including other parameters to watch out for. ^^

Can someone elaborate on this?

  1. One can control the current passing thru source to drain by controlling the voltage at the gate?

Correct. Gate voltage determines source/drain current flow. Gate current occurs only at initial turn on and off
of the mosfet due to capacitance charge of the gate, so many recommend a 200-1k ohm series resistor between gate and
output pin to limit this charge/discharge gate current. Also a resistor, 10k ohms, between gate and source is a good safety
feature in case motor voltage is still on, but arduino power is turned off, to ensure motor stops.

  1. Logic Level does not control the amount of current, but just turns fully ON and OFF the path?

Gate voltage can determine current flow if it's above threshold voltage, but below fully saturated gate voltage. Mosfets can
be operated in a linear manner as well as the more common switching manner as with most arduino application. One
must see the gate voltage Vs current flow graphs in the specific mosfet datasheet to determine the current curve Vs gate
voltage.

  1. If the Logic does fully turn on the path, so the amount of current flowing from source to drain depends on the current rating of the MOSFET? Say 14A, therefore 14A will flow (thereby one needs resistor )? Or depending on the needs of the motor?

Not exactly, The maximum current rating of the Mosfet must be higher (X2 is not too much excess rating) then the maximum load current of the motor, but the motor and source power supply voltage determines the actual amount of current flow. The mosfet is in saturation and will allow as much current to flow as ohms law dictates, up to the heat dissipation rating of the mosfet.
Lefty

Hi,

Let me try and answer your questions:

  1. Yes if the MOSFET is in the linear region (Vgs > Vth) and (Vds < (Vgs-Vth)) where:
    Vgs - gate source voltage
    Vth - MOSFET threshold voltage (from datasheet)
    Vds - drain to source voltage
    So the transistor acts like a resistor controlled by Vgs. Commonly used as an amplifier

  2. I don't know about logic level MOSFETs, but my guess is they work in cutoff and saturation region, skipping the linear region so they are either ON or OFF.

  3. The current flowing through the MOSFET has nothing to do with the current rating of the MOSFET. The current rating only tells you the maximum current the MOSFET can conduct without daamaging itself. The actual current through the MOSFET will depend on the needs of the motor (in your case). Basically, the MOSFET will source as much current as the motor needs (which depends on the momentary resistance of the motor). Keep in mind some motors have very high start-up currents, so you may need to find a way to "slow start" it. (google motor slow start if motor's start-up current exceeds the current rating of the MOSFET).

HTH,
Igor

Thanks for those enlightening input!

@ retrolefty
So you are saying Logic Level MOSFET is just a common MOSFET with the limiting resistor for gate inside?
Can you confirm what igor is saying about Logic Level?

@ igor86

  1. Just as I understood it. You explained it well.
  2. That's a nice theory. Fully On and fully Off.
  3. Soft start. Is this different from current limiting?

Thanks for your input! :slight_smile:

I found this:

I don't know if I fully understand the circuit. ^^

Tell me if I am wrong.
To switch the motor on via soft start, I will connect the 47k not from 6v, but from output pin of arduino. The others are connected as is.

So you are saying Logic Level MOSFET is just a common MOSFET with the limiting resistor for gate inside?

No, logic level mosfet is just a mosfet with a lower gate threshold and gate saturation voltage values. It works the same
as a normal mosfet, just with lower gate voltage values, making it easier to interface directly to 5vdc logic
level voltage values. Both normal and logic level mosfets do not have internal series resistors. I said
many recommend using such a series gate resistor to limit gate current, it doesn't matter which kind of mosfet.

Can you confirm what igor is saying about Logic Level?

Yes, however a logic level mosfet can be used for both linear and switching mode, just like a normal mosfet but
requiring less gate voltage for any given operation mode.

On your soft-start drawing. Yes if you disconnect the top of the 47k ohm resistor and wire it instead to an Arduino output pin, along with a common ground wire from the arduino to common ground from the 6 volt source, it should work in principle. Keep in mind this circuit may be designed specifically with the current requirements for the specific motor used, that is the 0R5 resistor and the 100ufd cap and the 47k may have to be adjusted to work with a motor with a different winding resistance. Also keep in mind this circuit will also act like a soft-stop circuit in the turn off will be as slow as turn-on until the cap discharges below gate threshold value, keep that in mind for any possible safety
concerns.
Lefty

Rather than re-writing it badly, I suggest you read International Rectifier's AN-1084, Power MOSFET Basics. http://www.irf.com/technical-info/appnotes/an-1084.pdf. It will give you a good grounding in what's going on.

a logic level mosfet can be used for both linear and switching mode, just like a normal mosfet but
requiring less gate voltage for any given operation mode.

This is correct. Most MOSFETs are designed these days to be used in "switching" applications rather than in their linear region, which means that they want to be either all the way on, or all the way off. If they are used "in between", the power dissipation will get very high, and you won't get anywhere close to the rated current. The "danger" of a normal MOSFET in a logic application is that the logic control voltage is not enough to turn the MOSFET all the way on, which will leave it in the linear "partially on" region, leading to high power dissipation and ... smoke.

(Say you have a 24V 10A motor switched by a MOSFET, so you go and pick an IRF6613 rated at 18+A with nothing but PCB as heatsink and 3.4mOhm on resistance (at Vgs = 10V); so at 10A you have a power dissipation of 0.34W (IIR), which is well within specification. But instead you drive it with a logic output that only gets up to 3.6V for some reason, increasing Rdson to 50mOhm (which would normally still be pretty good!) Now your power dissipation is 5W, which is pretty substantial, well above the spec, and likely to result in smoke...)

retrolefty:
No, logic level mosfet is just a mosfet with a lower gate threshold and gate saturation voltage values. It works the same
as a normal mosfet, just with lower gate voltage values, making it easier to interface directly to 5vdc logic
level voltage values. Both normal and logic level mosfets do not have internal series resistors. I said
many recommend using such a series gate resistor to limit gate current, it doesn't matter which kind of mosfet.

If I were to control the gate of a common mosfet (not logic level, I can't find any ic locally) using the output pin of Arduino, can I be sure that it will output 5v? If so, then I can put a fixed resistor value, without computation? A 2k ohm will do, like you said, is this enough? Or I need to compute according to westfw?

retrolefty:
Yes, however a logic level mosfet can be used for both linear and switching mode, just like a normal mosfet but
requiring less gate voltage for any given operation mode.

Very well explained, thanks.

retrolefty:
On your soft-start drawing. Yes if you disconnect the top of the 47k ohm resistor and wire it instead to an Arduino output pin, along with a common ground wire from the arduino to common ground from the 6 volt source, it should work in principle. Keep in mind this circuit may be designed specifically with the current requirements for the specific motor used, that is the 0R5 resistor and the 100ufd cap and the 47k may have to be adjusted to work with a motor with a different winding resistance. Also keep in mind this circuit will also act like a soft-stop circuit in the turn off will be as slow as turn-on until the cap discharges below gate threshold value, keep that in mind for any possible safety concerns.
[/quote] The vacuum pump we will use is 12V, but I can't be sure about its current requirement. What is the common current requirement of pumps at 12V? How can I compute the series resistor and capacitance to be used for gate control, as well as the bypass resistor? Can you provide a tutorial on this?
> rocketgeek:
> Rather than re-writing it badly, I suggest you read International Rectifier's AN-1084, Power MOSFET Basics. http://www.irf.com/technical-info/appnotes/an-1084.pdf. It will give you a good grounding in what's going on.
Thanks! I have that app note. Really good paper.
> westfw:
> Most MOSFETs are designed these days to be used in "switching" applications rather than in their linear region, which means that they want to be either all the way on, or all the way off.

  • Fully turning On the path will just enable the flow of current from source to drain, right? Do I need to add resistor to limit the current consumed by the pump or not? (battery is 11.1v, pump is 12v; at full charge, battery is 12.4v)*
    > westfw:
    > If they are used "in between", the power dissipation will get very high, and you won't get anywhere close to the rated current. The "danger" of a normal MOSFET in a logic application is that the logic control voltage is not enough to turn the MOSFET all the way on, which will leave it in the linear "partially on" region, leading to high power dissipation and ... smoke.
    So you mean I don't really need the series resistor to the gate? Since the output voltage of a digital pin is <=5v ?
    > westfw:
    > (Say you have a 24V 10A motor switched by a MOSFET, so you go and pick an IRF6613 rated at 18+A with nothing but PCB as heatsink and 3.4mOhm on resistance (at Vgs = 10V); so at 10A you have a power dissipation of 0.34W (IIR), which is well within specification. But instead you drive it with a logic output that only gets up to 3.6V for some reason, increasing Rdson to 50mOhm (which would normally still be pretty good!) Now your power dissipation is 5W, which is pretty substantial, well above the spec, and likely to result in smoke...)
    What should I do? I can't find any logic level mosfet here in the our country. I have bought IRF530N. According to datasheet:
    VDSS = 100V
    RDS(on) = 90mW (wth!)
    ID = 17A (this is the max continuous right?)
    ID @ TC = 25°C Continuous Drain Current, VGS @ 10V = 17A (confirms above, but i need 10v at gate?)
    PD @TC = 25°C Power Dissipation = 70W (this is the max dissipation the ic can sustain?)
    Can someone explain:
    VGS(th) Gate Threshold Voltage 2.0 ––– 4.0 V where VDS = VGS, ID = 250?A
    According to above, I need to input 10v at gate? If this is so, how would I do that using the digital pin of arduino?

Can someone explain:
VGS(th) Gate Threshold Voltage 2.0 ––– 4.0 V where VDS = VGS, ID = 250?A

According to above, I need to input 10v at gate? If this is so, how would I do that using the digital pin of arduino?

Vgs(th) is the gate voltage where the device just starts to conduct, perhaps just a few millamps. If you are using
the mosfet in a switching mode, on or off only, then you need a gate voltage that fully saturates the device on, 10vdc for your device. That of course can not be provided by directly from an Arduino output pin. You can however wire up a normal npn transistor as a switching device and switch your +12vdc battery voltage to the gate of the mosfet, but that is adding a lot of extra components and you might just be better off using just a NPN power transistor alone to switch the motor on and off via the arduino.

The series resistor between the output pin and a mosfet gate is not required by the mosfet, it will work without one, however it can be a protection device for the arduino output pin to prevent drawing too much current from the pin while trying to charge up or discharge the gate capacitance. It really depends on the specific mosfet being used as to how much gate capacitance it has and the maximum output pin current is available. All the logic level mosfets I worked with worked fine without a series gate resistor, however those recommending them have a valid point in using them. There is no reason to 'compute' this resistor, anything from 200-1k ohm should protect the output pin and still allow fast enough switching speed for your motor.

Last point, once a mosfet is fully turned on (saturated) the switched load determines how much current will flow using standard ohms law formula.

Lefty

retrolefty:
Vgs(th) is the gate voltage where the device just starts to conduct, perhaps just a few millamps. If you are using the mosfet in a switching mode, on or off only, then you need a gate voltage that fully saturates the device on, 10vdc for your device. That of course can not be provided by directly from an Arduino output pin. You can however wire up a normal npn transistor as a switching device and switch your +12vdc battery voltage to the gate of the mosfet, but that is adding a lot of extra components and you might just be better off using just a NPN power transistor alone to switch the motor on and off via the arduino.

Wow! You guys are awesome! I really need to read a lot on electronics. So you think I should now use NPN power transistor instead of mosfet? What do you think is the best for a 12v pump, say 1A current consumption?

off-topic:
About the IRF mosfet I am pertaining to above, can I use it for the concept on this topic: http://arduino.cc/forum/index.php/topic,49924.0.html?

retrolefty:
The series resistor between the output pin and a mosfet gate is not required by the mosfet, it will work without one, however it can be a protection device for the arduino output pin to prevent drawing too much current from the pin while trying to charge up or discharge the gate capacitance. It really depends on the specific mosfet being used as to how much gate capacitance it has and the maximum output pin current is available. All the logic level mosfets I worked with worked fine without a series gate resistor, however those recommending them have a valid point in using them. There is no reason to 'compute' this resistor, anything from 200-1k ohm should protect the output pin and still allow fast enough switching speed for your motor.

I see. Thanks to your explanation, I am now having a grasp about mosfet.

retrolefty:
Last point, once a mosfet is fully turned on (saturated) the switched load determines how much current will flow using standard ohms law formula.

So I won't need resistor in series with the pump, right? ^^

@retrolefty
Can you please see this topic? http://arduino.cc/forum/index.php/topic,49924.0.html

I that it's being sugested that you drive the mosfet with the npn transistor. This is because you need more than the 5v that your arduino can deliver to saturate (fully turn on) that mosfet. You'll also need a power source that 10v+ I'd suggest a mosfet driver IC such as: http://uk.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&R=6684351 generally intended for applications where you are controlling speed via PWM but just as valid for you.

Someone suggested I use NPN transistor as a switch rather than mosfet. What is the difference by the way? What transistor is capable of handling about 1.5A?

The conductance of a MOSFET is governed by the voltage applied to the gate relative to the source terminal. The amount of current flowing through an NPN transistor is, neglecting saturation, proportional to the current flowing from the base to the emitter. MOSFETs are better for most low-voltage switching applications because they'll dissipate less heat. The voltage drop through a fully-on MOSFET is just the current times the Rds(on) of the MOSFET. The voltage drop through a saturated NPN is generally about a diode drop, or around 1V-1.5V, which is likely to be more than the MOSFET, and you'll therefore dissipate more heat, and need a bigger heat sink.

One more thing -- if you use an NPN transistor to drive the MOSFET gate, make sure you pay attention to the maximum gate-source voltage. It's generally around 20V for most power MOSFETs.

So many replies I think you might have a problem focusing on any given solution. Why don't you just
put off the mosfet for the moment, in that unless you have or willing to obtain a logic level mosfet
you will just be making your project more complex then it needs to be to just run your motor.

Here is the classic drawing from the Arduino playground that can be used with solenoids or motors
up to 4 amp loads using a common TIP120 NPN power transistor:

You would just wire your motor as a replacement of the solenoid L1 in the drawing.
I would use the 1k ohm base series resistor. Note that you can either turn the motor on and off
using digitalWrite() commands, or you can run the motor at variable speeds from 0-100% using
analogWrite() commands. Same circuit supports both modes of operation, you just have to
pick an output pin number that supports pwm commands if you wish that option.

Lefty

retrolefty:
So many replies I think you might have a problem focusing on any given solution. Why don't you just
put off the mosfet for the moment, in that unless you have or willing to obtain a logic level mosfet
you will just be making your project more complex then it needs to be to just run your motor.

Yeah, hehe. Logic level mosfet is not available locally, so we bought common mosfet.

retrolefty:
Here is the classic drawing from the Arduino playground that can be used with solenoids or motors
up to 4 amp loads using a common TIP120 NPN power transistor:

http://arduino.cc/playground/uploads/Learning/solenoid_driver.pdf

You would just wire your motor as a replacement of the solenoid L1 in the drawing.
I would use the 1k ohm base series resistor. Note that you can either turn the motor on and off
using digitalWrite() commands, or you can run the motor at variable speeds from 0-100% using
analogWrite() commands. Same circuit supports both modes of operation, you just have to
pick an output pin number that supports pwm commands if you wish that option.

Very nice input. Thanks again for your big help! I will find TIP120 tomorrow. This will be our circuit for controlling the vacuum pump. Do you think I implement the soft start here? Someone suggested it and I think it is nice to have.

Thank you very much! ^^

Do you think I implement the soft start here?

That is much easier to implement in software. Just use analogWrite() statements starting with a zero value and gradually increase the PWM value to 255 (100% on) at whatever ramp-up speed you wish. Again be sure to wire to an output pin that supports PWM commands.

Lefty

retrolefty:
If you are using the mosfet in a switching mode, on or off only, then you need a gate voltage that fully saturates the device on, 10vdc for your device. That of course can not be provided by directly from an Arduino output pin. You can however wire up a normal npn transistor as a switching device ...

Like the OP, I too am a bit confused about MOSFETs. I purchased and assembled the "Power Driver Shield Kit" from Sparkfun, details here:

This uses 6 RFP30N06LE MOSFETs where the 6 gates are directly connected to the Arduino digital pins 3, 5, 6, 9, 10, 11, giving six independent "switched" outputs. It also has a socket for plugging in an ordinary ATX (PC) power supply, with the intention obviously being that you use an old PC's power supply as your main power source, and the Arduino for switching it by turning on and off the digital lines.

However, the (source?) voltage to the MOSFETs is 12v from the power supply. So this appears to not follow your statement that the MOSFET will not fully saturate (5v to switch 12v) and therefore we might expect to see smoke, etc.

Or does this particular MOSFET fully saturate at 5v? How do I work that out from datasheet? I admit my eyes glaze over looking at all that detail. Which is the relevant parameter?

I assumed that Sparkfun wouldn't release a product with a major design flaw, so is there something here I am missing? Will this shield work properly, or is there more to this than meets the eye?

Or does this particular MOSFET fully saturate at 5v? How do I work that out from datasheet? I admit my eyes glaze over looking at all that detail. Which is the relevant parameter?

I assumed that Sparkfun wouldn't release a product with a major design flaw, so is there something here I am missing? Will this shield work properly, or is there more to this than meets the eye?

For a N-channel mosfet with grounded source terminal the turn on voltage is the gate to source terminal voltage, regardless of the voltage coming from the load into the drain terminal. A normal mosfet requires +10vdc gate to ground voltage to fully saturate the mosfet on, no matter what the load voltage being switch to ground is (from a couple of volts up to the 60 volt drain limit). A logic level mosfet only requires +5vdc gate to ground voltage to fully turn on, again regardless of the load voltage being switched on and off. The mosfet used in that SparkFun board is the same one they sell individually: N-Channel MOSFET 60V 30A - COM-10213 - SparkFun Electronics which is a logic level mosfet type RFP30N06LE .

The datasheet for that device is : http://www.sparkfun.com/datasheets/Components/General/RFP30N06LE.pdf which states in the opening description that it is a logic level mosfet. Also figure 7 in the data sheet shows a graph of five different gate/source voltages curves (labled Vgs) and how much current each of those values will allow to flow from source to drain. This device will switch on and off just fine with direct connection to arduino output pins.

By the way SF seems to have that same switch board available in a single channel option: http://www.sparkfun.com/products/10256

Lefty

retrolefty:
Also figure 7 in the data sheet shows a graph of five different gate/source voltages curves (labled Vgs) and how much current each of those values will allow to flow from source to drain. This device will switch on and off just fine with direct connection to arduino output pins.

Oh, yay! Thanks very much for explaining that. Judging by figure 7, a voltage of 4.5v is sufficient to allow a drain current of 60 amps, which should be plenty considering the device is rated at 30 amps continuous. I presume the circuit traces would burn out before they carried 60 amps. :wink:

retrolefty:
By the way SF seems to have that same switch board available in a single channel option ...

Oh yeah, I made one of those too. I know a little knowledge is a dangerous thing, so I wanted to make sure I had some small grasp on the fundamentals before wiring them up to something big.