10
\$\begingroup\$

I am not really an electronics specialist, but a software engineer (so excuses if I 'm asking stupid questions).

I am trying to use a microcontroller GPIO output rated at 1.8V. When this pin becomes high, I want to enable a 12V relay. I am using a N-channel MOSFET from freetronics

The specs for the MOSFET can be found here.

For some reason the 1.8V seem insufficient to drive the MOSFET although it is specified for 1.5V min. I've tried a standalone setup using a 1.5V AA battery and that doesn't work either. But if I apply 3.3V with the same setup, it works (just so you know my wiring is OK).

Unfortunately my microcontroller (Intel Edison) only has 1.8V GPIOs.

Am I missing something? How can I make this work? Should I use a different MOSFET? And if so, which one?

Your help is much appreciated.

\$\endgroup\$
18
\$\begingroup\$

Sadly this setup won't work. If you examine the datasheet carefully it states that the MOSFET has a threshold voltage which is guaranteed to be between 1.5V and 2.5V, with 1.8V typical.

enter image description here

Even assuming you are lucky and you've got a specimen whose threshold is at 1.5V (best case for you), that doesn't mean that the MOSFET magically turns ON when its Vgs voltage reaches that value. That's the minimum voltage needed to make the MOSFET just barely conduct: in that line of the datasheet you can notice that the threshold voltage is specified at scant 250μA of Id. That level of current is insufficient to operate a common relay reliably.

Note: (as pointed out by @SpehroPefhany in a comment) these are the values at 25°C. If the ambient temperature is lower (e.g. winter, cold climate, circuit placed in cold rooms) the current at that level of Vgs will be even smaller until the MOSFET warms up!

To use a MOSFET as a closed switch you must drive it into the ON region, and specifically in the ohmic region, i.e. that part of the output characteristics where it behaves as a (small value) resistance:

enter image description here

As you can see, the curves shown correspond to higher values of Vgs (~2.8V or higher). You can better appreciate the problem looking at the Rds(on) graph, i.e. "the resistance of the switch":

enter image description here

From the graph on the right you may see that Rds(on) doesn't vary much with current, but the graph on the left tells another story: if you lower Vgs under ~4V you get a steep increase in resistance.

To summarize: this MOSFET cannot be turned on with a mere 1.8V. At least you should provide enough Vgs to make it conduct in the worst case, i.e. Vgs(TH)=2.5V. And this is confirmed by your experiment at 3.3V.

\$\endgroup\$
  • 3
    \$\begingroup\$ +1 Worth mentioning that 2.5V is only guaranteed to get you 250uA (less when cold!) and that's nowhere enough to reliably operate a relay. \$\endgroup\$ – Spehro Pefhany Jun 26 '15 at 23:13
  • 1
    \$\begingroup\$ @SpehroPefhany Thanks for the feedback, it made me realize I could have emphasized the thing even more, since it's important. I'll update my answer. \$\endgroup\$ – Lorenzo Donati Jun 27 '15 at 10:50
10
\$\begingroup\$

@Lorenzo has explained why this is not working for his, and if it did work it would be marginal, which might considered worse.

Here is what a spec for a suitable MOSFET (AO3416) looks like:

enter image description here

The Rds(on) is guaranteed at 1.8V Vgs, and at 34m\$\Omega\$ even if it's a bit higher because of tolerance on the 1.8V supply or temperature, still plenty of drive for a 12V relay.

In general you should use Vgs(th) to determine when the MOSFET is mostly off, and the voltage(s) at which Rds(on) is specified to determine when it is mostly on.

\$\endgroup\$
6
\$\begingroup\$

Figures 2 and 3 from the data sheet are shown below.

Note, in figure 2, that for a Vgs of less than about 2 volts, the drain current will be close to zero, while with with a Vgs of 3 volts the channel is nicely enhanced.

That's in agreement with your experiment, and shows that you need more voltage on the gate to make your circuit work,

Figure 3 shows how the Rds(on) rises very quickly to a high value as Vgs falls, and even though it's given for an Id of 20 amperes, the slope of the curve will be similar in your circuit, with the ultimate effect being that when Vgs gets low enough, Rds(on) - which is in series with the relay coil and the DC supply - will rise to a value high enough to limit the current through the relay coil to the point where it'll be impossible to actuate.

Since you don't have the gate drive required to assure that Rds(on) will be low enough to allow the relay to work, arguably the easiest way out would be to substitute a jellybean bipolar transistor for the MOSFET and drive the base of the transistor through a resistor with your 1.8 volt signal.

enter image description here

\$\endgroup\$
3
\$\begingroup\$

Other answers have finely explained why the FET in the question does not work. I'll focus on solutions.

One is to use a FET designed for the purpose; e.g. FDN327N.

Another cheap, easily sourced and reliable solution is using a plain NPN bipolar junction transistor.

schematic

To determine the appropriate resistor, find the minimum resistance Rlmin of the relay and the maximum of the 12V supply (say V12max=13.6V), giving you the maximum current in collector Ic=V12max/Rlmin (keeping the saturation voltage as engineering margin). Find the minimum gain of the NPN transistor at saturation for this current (be reasonably rather than overly conservative on that one; strictly speaking the BC848C data sheet only guarantees a minimum gain Gmin of 20 at saturation, but the 420 min for Vce of 5V for the C grade might give us enough confidence to use G=50). The minimum current we should target in the base is Ib = Ic/Gmin. Then we must account for the minimum supply voltage V1_8min of the device driving the DATA port, subtract the maximum rated dropout Vdrop on the high-side FET of that DATA port under load Ib, another 0.75V or so for VBE(ON) at saturation at Ic, and the maximum resistor comes out as Rmax=(V1_8min-Vdrop-VBE(ON))/Ib.

If V1_8min-Vdrop-VBE(ON) gets negative, we need a less conservative estimates of the three values in the sum, which might be helped by a less conservative (increased) Gmin, which decreases Ib.

We must also insure that the current in the DATA port does not exceed its maximum rating (for this we must consider the maximum V1_8, the minimum high-side dropout and VBE). If that's exceeded, we must increase the resistor and justify less conservative estimates (of Gmin in particular).

\$\endgroup\$
  • \$\begingroup\$ Did you miss the last sentence of my answer? \$\endgroup\$ – EM Fields Jun 29 '15 at 11:13
  • 1
    \$\begingroup\$ @EM Fields: I admit I did miss that good suggestion of yours, and proceeded to explain just what you suggested; with more details. As the saying goes for Usenet, repetition is the essence of the net. \$\endgroup\$ – fgrieu Jun 29 '15 at 11:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.