NTD4906NG MOSFET always on without gate signal??

Hi,

I'm using Arduino to control switching 12v loads (DC motors and LED strips) on and off. Previously I used to use TIP120 transistors but after reading this article http://sensitiveresearch.com/DoNotTIP/index.html
I decided to buy a few of the NTD4906 MOSFETs the author recommends as a replacement.

I have source connected to the 12v power supply ground and the Arduino ground. I have +12v connected to one terminal of the motor. The other terminal is connected to the MOSFET's drain. When I have these connected, the motor comes on and stays that way regardless of whether any signal is coming in at the gate input.

To clarify: rather than acting as a switch, the current just seems to flow through the MOSFET when nothing is connected to the gate. When I connected a 5v logic high from Arduino, that seemed to only get added to the voltage going to the motor (it spun faster). Not what I expected...

Am I doing something really stupid? The problem is I need these motors running for a project that starts on Monday. I have just about enough TIP120's to cover me but have spent the day designing a PCB with the DPAK SMT variant NTD4906's.

Suggestions appreciated!!

-ed.

Quick and dirty lesson of how a mosfet works.
A mosfet can be "on" or "off" when you leave the gate floating.
Depending on the charge (voltage) that happens to be on the gate.
Touch GROUND with one finger, and the gate with another finger, and the mosfet (motor) will turn off.
Touch POSITIVE supply with one finger, and the gate with the other, and the mosfet (motor) turns on.
Yes, that's all a mosfet needs.
Don't touch the gate first though. You might have a body charge that can zap the mosfet to silicon heaven.
Same with connecting a mosfet to the Arduino.
Make sure the common grounds are connected.
Then plug the gate wire in the Arduino first, and then connect it to the gate.
Generally two resistors are used on the gate.
One to ground 10k,100k, whatever.
This is not needed when the Arduino is working, but it keeps the gate nicely at ground potential during off and startup.
One 220ohm current limiting resistor between Arduino and gate, to limit Arduino pin current during switching.
Not strictly needed, but it makes it easier for the Arduino.
Because the gate is a (2nF in this case) capacitor that has to be charged/discharged.
If you switch inductive loads like a relay or a motor, a flyback diode on the drain is also needed.
Leo..

Leo: you just saved my life. I followed your instructions and it works.

Thank you so much!!!

deved:
Leo: you just saved my life. I followed your instructions and it works.

Thank you so much!!!

Let me add a bit to the excellent info you've already received...

There are both ENHANCEMENT mode mosfets and DEPLETION mode mosfets.

The basic difference is that an enhancement mode device needs some gate to source voltage to begin conducting, while a depletion mode device conducts with zero gate to source voltage and needs a reverse voltage to cut it off (kinda like a triode vacuum tube).

Fortunately, you have enhancement mode parts, which stay turned off as long as the gate is controlled with a resistor (or by being connected to something - like an Arduino output pin).

Depletion mode parts would require a NEGATIVE bias with respect to ground (on the gate) to turn them off.

Wawa:
Quick and dirty lesson of how a mosfet works.
A mosfet can be "on" or "off" when you leave the gate floating.
Depending on the charge (voltage) that happens to be on the gate.
Touch GROUND with one finger, and the gate with another finger, and the mosfet (motor) will turn off.
Touch POSITIVE supply with one finger, and the gate with the other, and the mosfet (motor) turns on.
Yes, that's all a mosfet needs.
Don't touch the gate first though. You might have a body charge that can zap the mosfet to silicon heaven.
Same with connecting a mosfet to the Arduino.
Make sure the common grounds are connected.
Then plug the gate wire in the Arduino first, and then connect it to the gate.
Generally two resistors are used on the gate.
One to ground 10k,100k, whatever.
This is not needed when the Arduino is working, but it keeps the gate nicely at ground potential during off and startup.
One 220ohm current limiting resistor between Arduino and gate, to limit Arduino pin current during switching.
Not strictly needed, but it makes it easier for the Arduino.
Because the gate is a (2nF in this case) capacitor that has to be charged/discharged.
If you switch inductive loads like a relay or a motor, a flyback diode on the drain is also needed.
Leo..

Although in theory what you said in red is correct, in reality it's completely not necessary.

The mosfets in the output pin drivers can be damaged by HEAT (such as shorting a "high" pin to ground for an extended period of time). The point is it takes TIME (milliseconds to seconds) for a damaging amount of heat to build up.

That's why, for example, you can PWM light emitting diodes that are directly connected to output pins safely. Although the current at a particular instant can be "too high", the average current (and therefore the power dissipation and heat) are low enough to not damage the chip.

With the mosfet, the microsecond-range current spike caused by charging or discharging the gate will dissipate so little power it's probably almost impossible to measure. It certainly will never hurt the AVR output pin driver.

In fact, a series resistor, along with the gate capacitance of the mosfet (AND the Miller effect) will cause the mosfet to turn on and off much more slowly than it could and, if it's being used as a high current PWM controller, the slow switching times will keep it in the linear region longer and raise IT'S power dissipation and heat.

Since a series resistor between the gate of a mosfet and an output pin:

  • Doesn't do any good
  • Costs money
  • Consumes PCB real estate
  • Makes the mosfet work much harder

....I see little reason to use one. :grinning:

(deletes 24x 220 ohm resistors from Eagle schematic)

:smiley:

Thanks for that detailed information. Learning a lot today!

You'll (almost) never see a depletion mode power MOSFET, they are exotic.

With normal power MOSFETs connecting gate to drain will put the device in the linear
range leading to rapid overheating and failure in a switching application. When a MOSFET
is on its drain voltage should be close to the source voltage (within a volt certainly for a
logic level FET) otherwise it won't be efficient (probably over its design limit current too).

I think there is more to add to that 220ohm resistor.
Gate (stopper)resistors also reduce radio interference by making the FET switch a bit slower.
At the ~500Hz PWM frequency of the Arduino, heat dissipation in the FET is not a problem.
If I'm correct, 220ohm/2nF has a corner frequency of ~350Khz.
Keeps people listening to their AM radio also happy.
Leo..

Avoiding the argument that Krupski has started (well, OK, you probably should use the series resistor if you are going to do PWM because there will be a lot of switching going on!), I will just remind that if using that series resistor, the pull-down resistor should not go from the FET gate to ground, but be on the Arduino end of the series resistor because you do not want it to form a voltage divider to the gate drive voltage and reduce that voltage in any way, however minor.

deved:
deletes 24x 220 ohm resistors from Eagle schematic

So deved, follow conservative design practice; don't delete those inexpensive resistors.

Haha, the nitpicking goes on.
According to the datasheet those FETs at 4.5Vgs have an on resistance of 0.0065ohm@30Amp.
But sure, 100k gate to ground is better than 10k.
And you want those resistors (and the 220ohms resistors) close to the gate.
Especially if the mosfets are on another board that can be disconnected.
Leo..

Paul__B:
Avoiding the argument that Krupski has started (well, OK, you probably should use the series resistor if you are going to do PWM because there will be a lot of switching going on!), I will just remind that if using that series resistor, the pull-down resistor should not go from the FET gate to ground, but be on the Arduino end of the series resistor because you do not want it to form a voltage divider to the gate drive voltage and reduce that voltage in any way, however minor.
So deved, follow conservative design practice; don't delete those inexpensive resistors.

This isn't a man rated moon rocket... it's an Arduino.

Anyway, if you would, please go through my "argument" a few posts up where I explain why those resistors are not needed and tell me anything I wrote that you believe is technically wrong.

Wawa:
I think there is more to add to that 220ohm resistor.
Gate (stopper)resistors also reduce radio interference by making the FET switch a bit slower.
At the ~500Hz PWM frequency of the Arduino, heat dissipation in the FET is not a problem.
If I'm correct, 220ohm/2nF has a corner frequency of ~350Khz.
Keeps people listening to their AM radio also happy.
Leo..

You could stick a cliplead on the board as an antenna, apply some audio on top of the switching mosfet's power rail (Heising modulation) and take advantage of the RFI... a pirate radio station! :grin:

MarkT:
You'll (almost) never see a depletion mode power MOSFET, they are exotic.

With normal power MOSFETs connecting gate to drain will put the device in the linear
range leading to rapid overheating and failure in a switching application. When a MOSFET
is on its drain voltage should be close to the source voltage (within a volt certainly for a
logic level FET) otherwise it won't be efficient (probably over its design limit current too).

A depletion mode mosfet works just like a triode vacuum tube... it conducts at zero gate (grid) voltage.

A typical way to bias a triode tube or a depletion mode FET into the linear region is to tie the source (cathode) to ground through a resistor. Then, the drain (plate) current pulls the source (cathode) UP above ground, making the ground referenced gate (grid) biased negatively relative to the source (cathode). Simple, elegant bias method... stable, won't run away.