Logo

Forums » Motor Control » Logic Level MOSFETs vs. Non Logic MOSFETs

eggmatters
Avatar
Perhaps I was a bit to ambitious, but I dove in with my first project to build a mix between Wally the Wall-bot and Linus the line bot. I went to a couple of hobby / electronic supply stores to get the parts to build the H-bridge motor driver from Wally. MOSFET transistors apparently don't grow on trees. I was surprised how many stores just didn't have any.

 

I wound up ordering all of the High-side transistors from Digi-key. I found 4 N-Channel MOSFET transistors at my local radio shack though.

 

After much trial and error, I had a breadboard circuit with a working H-Bridge. Much to my surprise it actually drove the motor when I ran my test sketch.

 

Other speeds and directions were not making it through the circuit properly though. As it turns out, these were IRF510 mosfets which aren't really supposed to act as relay switches. I read some articles online which directed me to the datasheets. The Vgs / I curves told the tale. Even though the Vgs of the Mosfet is rated at 2-4 volts, that is only for circuits with really low current. The MOSFETs had no problems turning on, problem was, they would stay on. Placing a 10k ohm pull down resistor on the mosfet kept the gate closed with the Arduino signal voltage.

 

So, what is the difference between the IRF510 and the FQP50? I noticed that the FQP50 has 'L' in the model number which supposedly means it's a logic level transistor. The IRF510s promise fast PWM switching but why such a high voltage transition to switch the gate? My only assumption would be that with a high Voltage differential you would have more current to do whatever happens to open a transistor gate faster. Just guessing though.
johndavid400
Avatar
Hey eggmatters, The main thing that makes the IRF510 not a great choice, is that it requires 10 volts applied to the Gate pin to turn on the transistor. This means it requires some type of voltage amplifier like another smaller transistor that can be driven by 5 volts to switch the 10v to the larger transistor.... not cool. As you observed, the FQP50N06L is a 'logic-level' transistor which requires between 3.3v and 5v to turn it on, making it ideal to be driven directly by the Arduino. One thing that might help you is that only Bipolar Junction Transistors (BJTs) are driven by current - a metal-oxide semiconducting field-effect transistor (MOSFET) is very similar but driven by voltage instead of current. So the BJT transistor requires a resistor between the Arduino and the 'base' pin (which is the counterpart to the gate pin on a mosfet). If you don't use the resistor, it can drain too much current from the Arduino, which is bad. The mosfet uses very little current to turn it on, but the voltage level is important on these. Sooooo, long story short Radio Shack doesn't sell logic-level mosfets (last I checked) and you are going to need to buy some from Digikey or somewhere like that. One last thing is that mosfets have tiny capacitors built into the gate pin, so if you apply voltage to the gate pin to turn it on and then remove the voltage - it will likely stay in the 'ON' state until the capacitor drains itself. To help this happen quickly, I usually add a pull-down resistor between the Gate and Source pin to drain that little capacitor quickly which make the mosfet turn off as soon as you remove the voltage from the Gate pin. I usually use a 10k resistor. Hope that helps... JD