MOSFETs, why the price difference?

Hello all, I'm putting together an HBridge to drive some automotive motors (5-10A), and am selecting MOSFETs for the bridge.

It seems a classical pick is the IRF540/IRF9540 pairing. These have ~30A current handling and turn fully on in the 10V range, which seems appropriate for the car battery. I'll use some darlington transistors (tip120/122) to drive these from Arduino.

So, perhaps you have different suggestion from these, but even within IRF540, there are 8 or so versions in T220 package on Mouser. These range in price from $1-$4. I'm trying to figure out what accounts for the price difference... I'm assuming that the higher priced ones have some desirable quality but I can't quite tell what it might be. I've been looking at the parametric charts, but honestly my eyes keep crossing and I'm not spotting anything obvious. In fact some desirable qualities seem better in the cheaper one.

Here's the expensive one: http://www.vishay.com/docs/91021/91021.pdf

Here's the cheaper one: http://www.irf.com/product-info/datasheets/data/irf540z.pdf

The cheaper one has a lower power dissipation capacity but then has a significantly lower Rds(on), so perhaps doesn't need it. I'm not building enough of these units for the $3 to matter too much, but would like to learn more about why one would pay 4X for the Vishay unit?

Then... there's a "middle" version, which is $2.75 or so - actually, while both of the above have 500 units in stock, this one has 16,000 units in stock, so seems like it's the highest seller:

http://www.mouser.com/catalog/specsheets/91021irf.pdf

By the way, one more question - is the 9540 the best match with the 540? Their Rds(on) currents seem fairly different, so should I expect materially different motor speeds with this pair (speed isn't really that important to this application)? I can't understand how to easily pick a better pairing as slogging through the part selectors and their crappy rows and columns is very slow going. Why aren't these in some kind of interactive graphic package so I could filter all of the parameters continuously and just have what I need pop out? Anyone know of a good part selector like that?

Thanks!

If I search for that part at RS http://uk.rs-online.com/web/c/?searchTerm=irf540 then the Vishay part is cheapest at GBP0.62, next is the IRF540N from IR at 0.93. The IRF540Z from IR costs more but has a lower Rds(on). So the price differentials at Mouser are not necessarily the same at other distributors.

You’re unlikely to get a precise match between the specs of N-channel and P-channel complementary mosfets, or between NPN and PNP complementary transistors, because the manufacturing processes seem to make it easier to get the best specs from the N-channel and NPN versions. The 540 and 9540 are a reasonable match. However, bear in mind that both need 10v or so gate drive. if you are using a mosfet driver chip to boost the logic signals from 5v to 12v or whatever, that’s fine. Otherwise, you may find it more convenient to use logic-level mosfets at least for the n-channel ones, e.g. if you are using a circuit similar to the attached (caution: don’t drive both Arduino output pins high at the same time if using this circuit!).

[EDIT: not sure why you’re proposing to use darlington transistors to drive the mosfets, you don’t need anything like that much current.]

Thanks dc42 - I appreciate the second opinion on pricing. I suppose it can be put down to different vendors having their different reasons for price points (inventory, special source prices, shipping costs, marketing, etc) as opposed to some technical advantage.

Thanks also for the schematic sketch - I have looked at lots of different hbridge designs, and indeed I'm doing something like that. Some of the annotations were hard to read, but one nchannel mosfet, IRL8748, was called out (can't read the other one) and it looks really nice with an Rds(on) of only 4.8 mOhms:

http://www.irf.com/product-info/datasheets/data/irlb8748pbf.pdf

I looked a little harder for the pchannel side and located this one:

http://www.onsemi.com/pub_link/Collateral/MTP50P03HDL-D.PDF

which also has quite low Rds(on) of 22 mOhms, VGth of 1.5V, while nicely handling 50A (!) Would anyone see a disadvantage of running logic level MOSFETs for all 4 legs of the bridge? If they're all logic level, it should be doable, but I guess I need to carefully add up the current consumption of all of the elements I need to drive. I have 4 motors and 4 relays in the plan, and I don't think I need PWM so when they're running, they'll just be flat out.

I had the darlingtons in there originally because I came home from Radio Shack with IRF510 BJTs which I thought might require more current than a MOSFET. I hate going in there, because I like to walk out with something after hours of rummaging around in the drawers, but I never end up using those selections :-/

braddo_99: Would anyone see a disadvantage of running logic level MOSFETs for all 4 legs of the bridge?

If your motor only needs 5v, then you can use logic level mosfets all round and drive them direct from Arduino pins. Otherwise, you need to invert and level-shift the drive to the P-channel mosfets. So if the motor supply is 10v or more, you might as well use non-logic-level P-channel mosfets, because they cost less then logic-level ones.

In my diagram, the P-channel mosfets were IRF9540 (low cost and not logic level), and the N-channel ones were STP40NF10L or IRLB8748 (both logic level). Sorry for my poor writing!

To give some protection against setting both pins high at the same time, you could add a 1N4148 diode, cathode to the collector of the left-most transistor, anode to the gate of the left=most N-channel mosfet. Similarly for the transistor and mosfet on the right.

Hi, Simplest, cheapest, easiest to find 12v FET driver is the 555... You can drive both N and P FETS with its symmetrical capability.

I may put together a cheap kit of 2 each of 540, 9540 and 555 for about $6 .. but slow China shipping would be about $3.50

dc42, thanks for further comment, and clarifying the other transistor. I'll look it up...

On you're answer to my question, I'm not sure if you got my point. The motors are 12-14 volt automotive motors, so clearly the motor drivers have to accommodate that, but that other pchannel I found appears to be a nice pair with your IRL8748 logic level nchannel. That would mean I don't need any drivers for those MOSFETs, and could switch all four from the arduino. Any disadvantage to that, since it nicely simplifies the design?

Terry - thanks for the intriguing idea of using the timer chip to drive the bridge. I tried to read up on that last night but only had my tiny phone and couldn't really get through the info. Regardless, I think that's ideal for PWM yes? However, I don't think I'm going to use PWM as I think my motors are geared to run full out at battery voltage. Not certain of that, but will do some checking this weekend.

I guess the timer could still work in that you could just send hi/lo and not pulse it. Need to read more.

Need to read more.

Good luck with a DIY h-bridge. They just aren't as easy as they seem.

Yes, that’s the fun! Besides, bridges for four automotive motors are pretty darn expensive. So nice to be able to build something excellent for just a few dollars!

using the timer chip to drive the bridge. ... I think that's ideal for PWM yes?

In this case, Terry is just using the 555 as a level converter, and not using the timing functions at all. The 555 has inputs compatible with 5V logic and outputs that are pretty close to the 555's power rails (at up to 200mA for a "real" 555); it makes a fine driver. There was even a 555-based moderate-current H-bridge submitted as part of the recent contest: http://www.electrobob.com/555-h-bridge/ (a mosfet driver is essentially a half-hbridge...)

IRF540: Rds(on) = 0.055ohm,
IRF9540: Rds(on) = 0.2ohm.

Motors take upto 10amps, result is dissipation in your FETs is upto 25W and substantial heatsink or forced-air cooling required. You can do a lot better than this. Go for Rds(on) < 0.01 ohm if you can…

MarkT, yes, dc42 suggested a logic level NChannel MOSFET with Rds(on) of 4.8 mOhms:

http://www.irf.com/product-info/datasheets/data/irlb8748pbf.pdf

And I located this PChannel MOSFET, which has a comparatively low Rds(on) at 22 mOhms and also seems to be logic level:

http://www.onsemi.com/pub_link/Collateral/MTP50P03HDL-D.PDF

This is my current candidate pair as complements in the hbridge - anyone have better suggestions?

Also, the question still stands, any reason why I shouldn't use all logic level MOSFETs? :roll_eyes:

So nice to be able to build something excellent for just a few dollars!

So you already have it built and working? Please share your working schematic.

I don't have it built or a complete schematic, but I will definitely post and look for feedback when I have it ready.

Per your earlier comment zoomkat it's definitely a challenge. Actually, I'm really learning the whole process from scratch for this project - arduino programming, dead reckoning, sensors, motor drivers, suppression, pcbs etc. It's a blast, but only having an hour here and there to work on it stretches things out.

At the moment, I have a working mockup of a prototype (ha) - using mechanical switch and a relay hbridge to emulate the switches in the car, relays for the motor hbridge, an accelerometer, hall sensor and magnets, a couple of tiny motors, etc. Here's the homely setup:

Any hbridge or other tips you have, please share... my best tip so far in general - double sided tape. :D

Brad

A similar project.

http://arduino.cc/forum/index.php?topic=53425

braddo_99: On you're answer to my question, I'm not sure if you got my point. The motors are 12-14 volt automotive motors, so clearly the motor drivers have to accommodate that, but that other pchannel I found appears to be a nice pair with your IRL8748 logic level nchannel. That would mean I don't need any drivers for those MOSFETs, and could switch all four from the arduino. Any disadvantage to that, since it nicely simplifies the design?

Let's say your battery is producing 12v. So the source connecton of each P-channel mosfet is at +12v. If you use a logic-level P-channeol mosfet, the gate needs to be at +12v when you want the mosfet off, and +(12v - 5v) = +7v or lower when you want the mosfet on. An Arduino output provides 0v (LO) and +5v (HIGH), not +7v and +12v which is what is needed. So you have to use a transistor to level-shift the signal. Once you are using a transistor to level shift the signal, you may as well use it amplify the signal as well (in fact, changing the 0v->5v signal into 12v->0v is easier than just shifting it to 12v->7v). So you have 12v gate drive. You could still use a logic level mosfet, but you don't need to, you can use a cheaper non-logic-level mosfet instead.

Does that help?

Regarding the on-resistance of the IRF9540, the datasheet I am looking at http://www.irf.com/product-info/datasheets/data/irf9540n.pdf gives Rds(on) = 0.117 ohm max at 11A. Not quite as bad as the 0.2 ohms that MarkT quoted, but he has made a very good point about the power dissipation being high (11.7 watts at 10A motor current). Although this is well within the capability of the IRF9540 with a suitable heatsink, using a P-channel mosfet with lower Rds(on) would be better.

The most economical P-channel mosfet I found with a much lowed Rds(on) is Fairchild FQP47P06, which is about 1/5 the price (from RS) of the MTP50P03HDL one that you quoted, and has Rds(on) max = 0.026 ohm. If you do decide to use the MTP50P03HDL, be warned that it has a Vgs rating of 15v maximum, and a 12v lead acid battery on charge is about 13.5v which is rather close. So it would be wise to modify the circuit I suggested by adding extra resistors in series with the transistor collectors to limit the gate voltage drive to e.g. 1/2 to 2/3 of the battery voltage.

There was even a 555-based moderate-current H-bridge submitted as part of the recent contest: http://www.electrobob.com/555-h-bridge/

Cool, westfw, I hadn't seen that! And using 2 Silicon diodes in series from pin 5 (control voltage) to ground sets the input logic signal to 1.4v for a "1" and .7v for a "0" for a cheap, weekend project solution.

I'm about to show my $10 collection of Popular IC's and I just added 20 1N4148s to go with the 10 555s and all the other chips... Maybe I'll call it the WeekendNerdWarrior kit :roll_eyes:

zoomkat, thanks for the link to the other thread, good info there.

dc42, your comments on the pchannel source tied to +12V - I actually hadn't understood that before. Somehow I've had the bad habit of thinking current flows from positive in my head, adding to the confusion. Is that an engineering versus physics thing? Not sure where that puts me as an engineer - but not electrical.

So, you're saying that when the datasheet says Vth = "-4V" that means 4 volts lower than the source voltage, therefore in this case 7V, right?

I thought this link had a reasonable explanation of the P Channel operation: http://www.eetimes.com/design/industrial-control/4009943/A-primer-on-high-side-FET-load-switches-Part-1-of-2-

braddo_99: So, you're saying that when the datasheet says Vth = "-4V" that means 4 volts lower than the source voltage, therefore in this case 7V, right?

Yes. Strictly speaking, it should be quoted as Vgs(th) or something like that. Bear in mind that Vth is the gate-dource voltage at which current starts to flow, not the gate-source voltage at which the mosfet is fully on. A mosfet with Vth=4v (or -4v for a P-channel mosfet) won't be fully on at 5v, except at very low drain currents. To tell from the datasheet whether a mosfet is logic level or not, look at the gate-source voltage at which Rds(on) is quoted. It is typically 4.5v or 5v for a logic level mosfet, and 10v for a 'normal' mosfet.

[EDIT: where the EEtime article says "The P-channel FET is fully switched ON, or in its linear region, when its gate voltage (VG) is lower than its source voltage (VS) and drain voltage (VD) by a threshold value (VT)", it is plain wrong.]

The P-channel FET is fully switched ON, or in its linear region, when its gate voltage (VG) is lower than its source voltage (VS) and drain voltage (VD) by a threshold value (VT)"

DC, I read that a little different…

"Gate voltage is lower than VS AND VD by the threshold value. If the VG is lower than DRAIN by VT, then I think VS and VD must be pretty close to the same, and it’s ‘fully on’ ??

Or unconfuse ME :slight_smile:

Terry

I would say that if by "fully on" you mean that the mosfet is able to carry a large current with minimal resistance (as given by the Rds(on) parameter), then the drain voltage is not relevant to whether the mosfet is fully on or not (it will be close to the source voltage anyway).