Let's Make Robots!

MOSFET vs BJT

CaptainTuna's picture

Hi guys. I have to admit i do not know much about these kinds of transistors... i mean, their difference.

I have to get a large current pass through a wire, but after having read articles on wikipedia about mosfet i don't really know why i see them on, say, motor drivers instead of BJT transistors. One thing i don't know about is whether you can find logic-level high-power BJTs but i know there are logic-level FETs, like the IRLD series. But again, if you want to switch a BJT on fully then maybe you could just arrange them into a Darlington i guess.

 Hmm...so much confusion. Do these two transistor types have precise PROs and CONs? 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
arbarnhart's picture

I have almost the exact same circuit and therefore discussion in another thread about a simple motor control:

http://letsmakerobots.com/node/24073

I am using this MOSFET:

http://www.jkdevices.com/components-mosfet/logic-level-mosfet-fdp8878

and having success with wiring straight from a digital pin on a 3.3v Arduino to the gate. It is switching 7.4 volts. Common GND to drain, +7.4v to to one side of the motor and other side of the motor to source. Pull the pin up and the motor is full on. Pull it low and it turns off. Generate pulses and the duty cycle determines the speed. That's it. No other parts (the motor already has some caps on it). A single direction variable speed motor control for a dollar...
CaptainTuna's picture

no no wait, i didn't express myself correctly. I understood why i need a transistor, i just didn't understand why something like this couldn't work :

Driving_a_FET_from_MPU_0.jpg

OddBot's picture

If you wire that up then the Base/Emitter junction will act like a diode and conduct you signal from the MCU to the FET's gate except that you will loose about 0.6V across that junction and you FET will be worse off than if you just connected it directly to the MCU. This is because the gate of the FET is an open circuit. This means no current can flow which means the NPN transistor won't turn on and switch the supply voltage to the gate.

You have to remember, bi-polar transistors like the NPN in this diagram need current to flow to turn them on so the circuit must be complete.

A FET only needs a static charge on the gate which is why it's an open circuit.

CaptainTuna's picture
I think i got it: if the current passing from the base to the emitter doesn't end up in a closed circuit then the NPN won't be switched on, whereas in the first example the NPN goes on because the current activating the NPN eventually gets grounded (with my own words).
OddBot's picture
:D
CaptainTuna's picture

thank you for all the nice informations :).

I've heard that FETs can for sure be switched on by an output pin from the MCU, but unless the FET is logic-level (works fully at 5V), you are not gonna 'exploit' all of its power. But is there a way to more efficiently drive those thorugh an MCU pin? (and by more efficiently i maen turning them fully on).

I've read something like this around but don't really understand what exactly they mean:

 

A: Connect the PIC output directly to the Gate -- Simplest approach, but this would appear to be problematic since the PIC's HIGH output will only be 4.3V, so the FET will never "fully" turn on, reducing drive current to the LED. Also causes more power dissipation in the FET due to higher "on" resistance.

B: Use a pull-up resistor between PIC output and the Gate -- This should bring the HIGH output back up to the full 5V. Should help FET operate at rated "on-resistance", but it adds another component.

C: Use a low impedance drive resistor -- I have seen this used for other high-current switching applications and so far I have been using this configuration for the MilesTag designs. My understanding was that it helps prevent oscillations in the Gate drive. But there's alot of info about "miller effects", gate-charge, gate capacitance/inductance, etc that I don't quite understand.

or....do you know of any othe method? 

OddBot's picture

This is one way to apply a higher voltage to your FET's gate.

Driving_a_FET_from_MPU.jpg

In this case, the MPU drives a bipolar transistor which switches the higher supply voltage to the FET's gate. The transistor will invert your output in the process so now a low output from your processor is required to turn the FET on.

OddBot's picture

In this circuit, when your MCU output is low, the NPN transistor will be turned off. The resistance from Collector to Emitter will be very high. This means that almost none of the supply voltage is lost across the 1K resistor from the supply to the Gate of the FET. If your supply is 12V then almost 12V will be on the Gate and the FET will turn on.

When your MCU output is high, the NPN transistor will turn on and effectively short the gate to ground. The FET will now turn off.

 

CaptainTuna's picture
Now, that sounds nice! Only thing is that i will waste more current ( i guess ) since there will still be some coming through the resistor. But hey, how can i now if that voltage will really be enough to switch the FET completely on? Is there a valure to show this on datasheets?
OddBot's picture

VGS on is the minimum voltage from gate to source required to turn the FET on and is often around about 4V. There will always be a graph on the data sheet that will show RDS (resistance from drain to source) vs ID (drain current). It plots a curve showing how the resistance rises slightly as current increases. More importantly is that it usually shows a couple of curves labeled with different gate voltages and shows how a higher gate voltage will reduce the resistance at high current levels. Don't exceed VGSmax which is usually around 15-20V or you'll damage the FET.

Don't worry about the extra current drawn by the bipolar transistor. It is only a few mA. You could reduce this more by changing the 1K resistor in series with the transistor's collector to 10K but this will slow switching time of the FET slightly. This will cause the FET to get hotter when switching at high speeds such as when you use PWM to control the speed of a motor but would be OK if your just turning something on or off every now and then.