MOSFET question

OK, so I want to control some high-voltage (14v) high-current (>1A) circuits from my Arduino, and I don't really want to use relays. So, MOSFETs, obvious choice.

Unfortunately, I didn't quite do my research thoroughly enough, and I've ended up with some 10V MOSFETs instead of logic-level ones....

Can I simply use a bipolar transformer to supply the gate with 12-14v from the supply line?

Yes.

Put a resistor from 14V to MOSFET gate, then a BJT from gate to ground.

The logic will be inverted, but hey...

Thanks fungus.

Of course, I meant transistor, not transformer..... but I was multitasking at the time....

Logic high, logic low, meh - so long as it's consistent I don't care :slight_smile:

Just bear in mind that with that arrangement, the NPN transistor driving the mosfet will be off until the Arduino has finished initializing, written a HIGH to the pin controlling the transistor and set the pin mode to OUTPUT. This means that the mosfet will be ON during that time, which is probably not what you want. To keep the mosfet off during this time, add a pullup resistor from the pin to +5V.

Ta for that - when I set the Arduino pin to go LOW (after setting it to mode OUTPUT), does it become a current sink? Otherwise wouldn't the pull-up resistor simply keep the base HIGH & thus the MOSFET off?

What sort of resistor values should I be looking at? I'm expecting the load on the MOSFET to vary between 1.5amp for the lower power operations, going maybe as high as 20amp. For early testing, 1.5amp is the expected max. I'm guessing what, 330ohm resistors as pull-ups/pull-downs?

AdeV:
What sort of resistor values should I be looking at?

It doesn't really matter if you're not switching at high frequency.

AdeV:
I'm expecting the load on the MOSFET to vary between 1.5amp for the lower power operations, going maybe as high as 20amp. For early testing, 1.5amp is the expected max. I'm guessing what, 330ohm resistors as pull-ups/pull-downs?

330ohm should be fine.

(For both the MOSFET pullup and the current limiter between the Arduino pin and the BJT base)

AdeV:
Ta for that - when I set the Arduino pin to go LOW (after setting it to mode OUTPUT), does it become a current sink?

Yes.

AdeV:
What sort of resistor values should I be looking at? I'm expecting the load on the MOSFET to vary between 1.5amp for the lower power operations, going maybe as high as 20amp. For early testing, 1.5amp is the expected max.

Start with the pullup resistor from mosfet gate to +14V. Too low and it will dissipate excessive power, too high and the mosfet will turn on slowly. If you're not using PWM, then 1K is a reasonable compromise. So the collector current of the NPN transistor will be 14mA.

For the resistor from pin to base of the NPN transistor, and from pin to +5V, I suggest you design for a base current of about 1.4mA (10% of the collector current) when the pin is driven high, which requires a base resistor of about 3K. If you make the pin pullup resistor about 3K as well, there will still be adequate base drive (0.7mA) to hold any reasonable transistor on. But these resistors are not critical, anything from 1K to 4.7K should be OK.

dc42:
Start with the pullup resistor from mosfet gate to +14V. Too low and it will dissipate excessive power...

That was my first thought, too, but then I thought: "He's switching 14V @ 20A, why would he care about whether his pullup resistor is wasting 5mA?"

I guess I'm not a real engineer. :~

fungus:

dc42:
Start with the pullup resistor from mosfet gate to +14V. Too low and it will dissipate excessive power...

That was my first thought, too, but then I thought: "He's switching 14V @ 20A, why would he care about whether his pullup resistor is wasting 5mA?"

I guess I'm not a real engineer. :~

I agree, wasting 42mA (using a 330 ohm pullup resistor to +14V) in the context of switching 20A is certainly not a problem. The problem is that the pullup resistor would dissipate 0.6W. As I don't stock resistors that can dissipate more than 1/4W (even less for SMD designs) without getting uncomfortably hot, I look for solutions that keep the power dissipation lower than that.

Thanks again for the comprehensive replies, as you've probably guessed, I'm a bit of a newb at electronics design.

Upon perusal of the datasheet for the mosfets I have, it looks like they should be fully switched on with a gate voltage of 2.2v or better; which means I might be able to avoid having the additonal BJT. The devices are INFINEON - IPP096N03L G (http://uk.farnell.com/infineon/ipp096n03l-g/mosfet-n-ch-35a-30v-pg-to220-3/dp/1775639?Ntt=177-5639) in case that's of interest.

From the datasheet you linked to:

RDS(on) @ VGS=4.5 V, ID=30 A 11.3 mohm typical, 14.1 mohm max

So yes, they are logic level devices. Drive them from an Arduino output pin through a 100 ohm series resistor. Also connect a pulldown resistor (e.g. 100K) from the pin to ground, to ensure that the mosfet stays off when the system is powered up.

PS - 2.2V is the maximum gate voltage at which the mosfet starts to conduct, not the voltage at which it is fully on.

Cool, thanks, will give that a go & post back if it works 8)

dc42:
I agree, wasting 42mA (using a 330 ohm pullup resistor to +14V) in the context of switching 20A is certainly not a problem. The problem is that the pullup resistor would dissipate 0.6W

Ah, OK. I didn't calculate the Watts.

It's higher then I expected for a small current like that. I guess I'm too used to working with 5V.

Well, it took a few goes to get the circuit right, and I managed to fry one of my MOSFETs (it's now permanently on no matter what the gate does); but, I've got my Arduino cheerfully switching a bunch (3) MOSFETs, with nothing seeming to overheat.

I used 1Kohm resistors between base & ground (they could possibly be bigger, didn't do the finger-temperature-test on those), and about 500ohm between Arduino and gate, only because that's what I had to hand. It seemed to work fine.

Thanks for all the tips & help, much appreciated :slight_smile: