N-Channel MOSFET pull-down ....

Thread Starter

daba1955

Joined Apr 27, 2019
181
Driving the gate of an IRFZ44N from an Arduino pin, there seems to be two schools of thought as to where the "pull-down" resistor should go, either before the series resistor, or after it, directly on the gate of the MOSFET.

I have done my PCB design such that I can do either, and both methods work.

Anyone have any thoughts as to the "best", "preferred", or "correct" location ?

2020-08-19_091640.jpg
EDIT : This is a PWM motor speed control application.
 

bertus

Joined Apr 5, 2008
22,270
Hello,

The IRFZ44 is not a good choice for using with the Arduino.
The Vgsth is between 2 and 4 Volts.
A IRLZ44 will do a better job.
The Vgsth of that one is between 1 and 2 Volts.

I would make R4 a bit smaller (between 100 and 470 Ohms) and use the pull down resistor at the gate.

Bertus
 

Thread Starter

daba1955

Joined Apr 27, 2019
181
The IRFZ44 is not a good choice for using with the Arduino.
Oh dear, I've recently stocked up, and have around 100 of them.

One of my other "projects" uses them, and driven from a Teensy, which is only 3V3 logic ! On that PCB the PDR is on the gate, with 1K0 series resistor from the Teensy output. I certainly haven't seen any evidence of them not being driven hard enough, but from what you said I will do some tests and measurements to make sure.....

I would make R4 a bit smaller (between 100 and 470 Ohms) and use the pull down resistor at the gate.
Well that would make sense, since R4 and R5B make a potential divider, which reduces the voltage seen on the gate. But I'm certain I have read somewhere that putting the PDR before the gate series resistor allows the gate to see the full potential of the Arduino output pin, while still pulling the gate low to turn off the FET until the Arduino takes control.
 

jpanhalt

Joined Jan 18, 2008
11,087
Version B is a voltage divider, but is commonly used. Version A is not a voltage divider. One may also include a "speed-up" diode in A to decrease turn-off time.
 

Attachments

ericgibbs

Joined Jan 29, 2010
18,766
hi,
A design using a MOSFET in a digital circuit that 'depends' upon the very small voltage drop across a low value resistor ie: 100R thru 470R in series with the Gate, is using the wrong MOSFET type.

E
 

Thread Starter

daba1955

Joined Apr 27, 2019
181
hi,
A design using a MOSFET in a digital circuit that 'depends' upon the very small voltage drop across a low value resistor ie: 100R thru 470R in series with the Gate, is using the wrong MOSFET type.

E
The trouble is the internet is full of "the good, the bad, and the ugly".

2020-08-19_103336.jpg
 

jpanhalt

Joined Jan 18, 2008
11,087
@Post#7

I see nothing wrong with that design, assuming the mosfet is appropriate and switching speed is sufficient. That gate resistor is larger than what I usually use, but not outrageous.

Agree on the question of the discharge resistor. A diode across the gate resistor will speed up discharge (anode attached to gate).
 

Thread Starter

daba1955

Joined Apr 27, 2019
181
hi daba,
A question for you.;)
Why do you think a pull down is required on the Gate.? when connected to an MCU.

E
Because an Arduino goes into bootloader mode for a short time on power-up. The output pin will be high impedance until the Setup code executues, setting it to an OUTPUT, and then digitaWrite(Pin, LOW).

The pull-down will ensure that the FET won't turn on during that time.
 

Thread Starter

daba1955

Joined Apr 27, 2019
181
I have settled on this design....

2020-08-19_114318.jpg

Regarding the diode on the gate ... The "Typical" Turn-Off time of the IRFZ44N is 44nS, I can't see that becoming an issue in this application. But thankfully I have PCBs already made with an empty space where R5B would have gone. I can utilise that for a Diode, correcting the silk-screen on future batches of PCBs. I have stock of 1N4148's, would one of those be suitable ?
 

Irving

Joined Jan 30, 2016
3,845
Agreed, there's a lot of mis-info, and driving a power MOSFET directly from an Arduino may or may not work depending on the application. So all of the above advice may or may not be valid (though it probably is for most hobby projects driving relays and LEDs).

At this risk of preaching to the converted, here's my take on this...

To pulldown or not
The pulldown resistor is there to discharge the gate capacitance and ensure the MOSFET turns off if the driver isn't a push-pull output or is able to go to tri-state. Since the Arduino output is a push-pull output (unless you change it to an input without setting it LOW first) the pulldown isn't strictly necessary, and could be left off. There is a lot of confusion on this, with its inclusion being stated as 'good practice'. During development, and for small-scale & one-off I agree. For a large production run, given the additional cost, setup time, etc., I'd probably make a place for it on the PCB, but leave it out (after validation). The diode as shown by the TS does nothing useful.

The arguement about turn-on at power-up is an interesting debate. If the gate capacitance is discharged, where do the volts to turn the MOSFET on at start-up come from if the GPIO output is tri-state (and pullups disabled by default)?

Series resistor
The series resistor is to limit the current flow as the gate capacitor charges/discharges; too high and the MOSFET switches slowly through its linear region, potentially incurring high losses & generating a thermal pulse. The Arduino outputs are current limited and effectively have an approx 50ohm output impedance, so actually its perfectly safe with no series resistor, though 'good practice' suggests an additional 100ohm - but that's purely anecdotal. Switching on a MOSFET is complicated. First you have to charge the gate capacitor, then overcome the Miller gate charge, and then charge the output capacitor. But these capacitances are non-linear and depend on the drain voltage and current... There are various explanations of this on the web, I like this one, which suggests using an equivalent capacitance of roughly

Ceq = Cgs + Cgd(1 + Vd/Vgs(max))

using (from IRLZ44N datasheet) Cgs = 1700pF, Cgd = 400pF, Vd = 12v (typically), Vgs(max)=5v gives Ceq ~ 3000pf

Charging 3000pF to about 4v from 5v via 150ohm ~ 1.6RC or 1.6 * 150 * 3000 pS = 724nS vs 5uS with 1k. Depending on PWM frequency 5uS could be a significant part of the cycle time and would lead, subject to drain current, to significant losses and heating in the MOSFET. The TS hasn't said what he's driving and what PWM frequency, but even 700nS could be significant, in which case a proper gate driver might be needed... On some of my high-power motor driver designs, gate current can be 1A or more when switching multiple parallel MOSFETs.

Turn-off time calculation is similar.
 
Last edited:

crutschow

Joined Mar 14, 2008
34,285
I've recently stocked up, and have around 100 of them.
A particular MOSFET may or may not work well depending upon the gate drive and the load.
You may want to test them, and use the lower Vgs(th) units on the Teensy project.

Always use a logic-level type MOSFET for a Vgs of 5V or less.
 

Irving

Joined Jan 30, 2016
3,845
The IRFZ44N is not ideal, but it will work depending on circumstance.

The key parameter is Vgs(th), the threshold voltage. That is spec'd as min 2, max 4v. Vgs(th) is the voltage the gate must see for the MOSFET to just turn on and pass the spec'd current.

1597846823076.png

For that device, its 250uA. However, that's worst case, many devices will be around 2.5 - 3v. Vgs(th) is better thought of as the voltage below which the the device is guaranteed to be OFF.

It you look at the chart 1 below, you can see that Vgs = 4.5v is the lowest voltage at which the manufacturer will guarantee that it is actually ON. But its not a hard edge. It is usably ON at a lower voltage, with limitations...

Chart 2 shows the transfer characteristic in its linear region, as the gate voltage changes. Although the line stops at Vgs = 4.5 because thats the spec, it clearly carries on down to Id = 250uA at 4v or below. So for an Arduino output at 4.2v (guaranteed on 5v and 20mA current source) there's a good chance that the bulk of devices will be ON and capable of sustaining around an amp or more of drain current and although the on-resistance might be 10x its spec'd 17.5mOhm, it will only be dissipating 0.175ohm x 1A x 1A = 0.175W and that's a rise of only 11degC over ambient. So not ideal, but useable. Counter-intuitatively as the die temperature rises the threshold voltage actually drops, making it easier to turn on!

On the Teensy at 3v output things are a bit more problematic. However, both Philips & NXP give a typical Vth of 3v at Id = 1mA so its quite likely a few 10's or even a couple of 100 mA drain current is possible with a 3.3v processor. It'll be slow turning on, but it'll probably work more often than not. Not recommended for production, but OK for a hobby/one-off.

1597846775712.png
 

Thread Starter

daba1955

Joined Apr 27, 2019
181
Thanks for the insights guys...

To determine that the FET is being turned hard ON, I have scoped across Drain to Source, and I'm seeing the following at about half speed.....

2020-08-20_085542.jpg

0V is centre. Does this tell me it is fully ON ?

The FET is being driven from an Arduino Nano, the PWM frequency of which should be (according to documentation) 976Hz, but my oscilloscope trace says 490Hz ???

Motor supply voltage is from a 12-cell NiMH battery, 14.4V nominal, but a full charge should see 16.8V. Supply current is about 3A at 50% duty cycle.

In this test, the series resistor to the gate is 1K0, and there is a gate pull-down of 10K.

All looks good to me ....
 

ericgibbs

Joined Jan 29, 2010
18,766
hi daba,
Is the MOSFET running 'cool' in that test.?
The levels look OK.
I assume the Nano is a 5V version.
E
BTW: I would recommend that you reduce the value from 1k to say 100R or 220R
 
Last edited:

Thread Starter

daba1955

Joined Apr 27, 2019
181
Yes, MOSFET not even getting warm, and it doesn't have a heatsink either. I ran the prototype continuously for over 140 hours.

And Yes, the Nano is a 5V version (I didn't know they made a 3V3 version).

Since I am making changes to the PCB layout for the next batch, I suppose I could put a driver transistor onto the gate, but to be honest I see no need. I will however, change the resistor values as recommended, 270R series, 47K pull-down.

Here is the complete circuit, although the chokes on the motor PCB are just wire links, I just provided for them in case they were needed ....

2020-08-20_091733.jpg
 

jpanhalt

Joined Jan 18, 2008
11,087
To evaluate whether it is fully on, you need a load. Without a load, voltage doesn't mean much. With a load, the voltage drop will allow you to calculate RDS(on). Noticed you say supply current. If that is the current through the load you can calculate RDS(on).
 
Last edited:
Top