What's the point of BJTs?

This is kind of a theoretical question.

Since they invented MOSFETs, why do people use BJTs?

I understand that BJTs are current-controlled, where MOSFETs are voltage-controlled, but so many circuits in digital electronics are on/off voltage-controlled circuits and the current-amplifying nature of BJTs is converted to a voltage anyway for the purposes of the circuit.

And even for linear amplification, Mosfets have a linear region; I know there are audio amps that use Mosfet output stages.

In a lot of examples, people recommend using NPN transistors for controlling motors with PWM. Why BJT and not a MOSFET?

Not meant as a criticism; I just searched google with "BJT vs MOSET" and it returned a large number of results. The few I checked all seemed to be repeating the same ideas over and over.

here you go…

In context with Arduino applications (+5vdc output pins) one is limited to using logic level mosfets which are not as common as standard mosfets requiring +10vdc gate/source voltage to fully turn on. BJT are very easy to find, cheap and still perform well. I do however favor using logic level mosfets for simple switching applications with a Arduino.


My two pluses with BJT's are 1) they can turn on at lower voltages (e.g., you can easily drive them from a 1.8V or 1.2V system) since they only need 0.7V to turn on, and 2) they are less sensitive to destruction from static charge. MOSFET gates are very sensitive and always need to be kept within +/-15V, which is a TINY voltage relative to electrostatic discharge, and furthermore this charge can easily build up in a system where there is no discharge path from gate-to-source.

But if you put a resistor from gate-to-source on all your MOSFET's and you don't need 1.8V operation, MOSFET's are probably the way to go in just about all "hobbyist-type" applications. For most low-current logic-level operations something like a 2N7000 MOSFET is usually a perfect replacement for a BJT.

-- The Quick Shield: breakout all 28 pins to quick-connect terminals

One more use of BJTs...though not really applicable to the Arduino. MOSFETs are great for high power applications because they have a very low on resistance, usually at great power and heat savings over a comparable BJT system. However, when dealing with REALLY high currents, such as for electric vehicles, we go back to BJTs (or more accurately IGBTs). The reason is that over 600 amps or so, a MOSFET's on resistance starts to drop more voltage than a BJT's relatively constant diode drop voltage. Therefore a BJT becomes more efficient than a MOSFET at really high currents. Let's hope no one uses an Arduino to control something over 600 amps, though!

But to be fair a IGBT really combines both a mosfet for easy driving and a BJT for the reason you gave.

A IGBT is really a hybrid transistor, neither pure mosfet nor pute BJT.