02 Automotive: High(er) current control and management

Project: Arduino control (digital and/or PWM) of high current automotive elements; stage 02

Introduction

For this stage, the goal is PWM control of fairly significant current loads. This project will be managing two elements, at 2-7 amps per element (200 watts total).

Note: I explored some of this project in these forums about a year ago. Various circumstances didn't allow me to pursue this fully at the time; I'm now taking another run at it. I must say that the support and contributions from various members here has been amazing. For everything in the past, and everything in the future, thank you one and all.

A bit about me: I'm fairly new to Arduinos and electronics; I'm learning fast, and having a blast. :slight_smile: I have plenty of experience with linear programming (20+ years), and next to zero experience with object oriented and event-driven programming.

I've divided this project into manageable (at least for me) chunks. This breakdown may be changed on the fly and/or after the fact before the completed project is published.

01 [DONE] Detect switch to ground (I know; not very appropriate considering where this topic went).
This stage deals with dual-switched (+V and ground) control of power provisioning to the Arduino and main loads. It also deals with switch state info to the Arduino.

02 [CURRENT] Automotive: High(er) current control and management
This stage deals with using the Arduino to provide digital and/or PWM management of fairly high current loads (up to 7 amps per element).

03 [UPCOMING] This stage will add some minor elements and is not likely to have any significant impact.

04 [UPCOMING] In the last stage, programming will be explored. (This stage may be broken into smaller chunks.)

05 [UPCOMING] Review and documentation

06 [UPCOMING] Publication of completed project

Anywhere along the way, I would be happy to explore alternate uses of various elements, potentially useful additional elements, etc.


02 Automotive: High(er) current control and management

For this topic, all schematics have power provisioning, control, switch state info, etc. abstracted. I show two power sources: 11-15V (from existing automotive services) and 5V reg (from a Pololu 24VxxF5). All switching, etc. is left out as it's not important or connected to anything in this stage.

Onwards...

PWM control of significant current just about demands the use of power MOSFETs. Power MOSFETs however have notoriously high capacitances at their gates - which means that switching times are the largest cause of heat production. So, to minimize heat, switching speeds need to be maximized.

Push-pull circuits appear to be one of the most used (effective?) methods of minimizing time taken to switch, so after some digging, I've come up with an approach I hope will work. I found two variants of this; the only difference between the following two schematics is the placement of the transistor (Q3a) used to trigger the push-pull transistor pair (Q3b, Q3c).

Note: I don't understand exactly how or why push-pull arrangements work (I've read through some descriptions and have yet to have it sink in. I suspect wtih time (maybe osmosis), it will). So, I welcome any and all suggestions, starting from scratch, etc...

Game on. :smiley:

You could always buy a nice fet-driver chip from eg IR... 1A gate current would be plenty...

Allan

While it can be instructive and an interesting exercise to build a discrete push-pull driver for a MOSFET,
you'd never bother, there are 10,000's of chips available that do it for you, and do a better job for
less money and board area and fuss.

For instance a MIC4422 will drive almost any MOSFET however large, and is available in through-hole
as well as SMT (many drivers are SMT only, beware).

One gotcha for automotive use is that you must create a stable supply from the automotive 12V,
since large voltage spikes will trash your MOSFET drivers and MOSFETs... This usually means proper
supply filtering, MOV or TVS spike suppression, etc.

MOSFET driver chips usefully have under-voltage protection, turning off the MOSFET if the supply drops,
rather than letting the gate float (which can overheat the MOSFET).

Allan, Mark, thank you both for your comments.

I've looked around and have not been able to find anything in a through-hole IC (I have to be able to reasonably breadboard things for testing) that makes sense to me. ...yet. I'm learning. :slight_smile:

Two things:

  • I would not mind at all pursuing a discrete component solution - just for the knowledge. Any and all contributions to this are very much appreciated. (I.e. Exactly how much magic smoke would be emitted by either of my suggested schematics; improvements; alternatives; etc.)
  • If anyone knows of a through-hole IC that can drive 1 or 2 n- or p-channel MOSFETs at up to 7 amps (each) at the Arduino's default of 500Hz, I'd love to hear about it.
    PS An n-channel power MOSFET solution would be great! Better selection, better current handling, etc. but must be able to be used as high-side switch.

Cheers!
Dirk

But diode D3 turns it back into a pullup+pull driver. No current from Q3B goes towards the MOSFET so it does no pushing.

Just buy the correct driver chip. They can do so much more than you can do with three transistors.

There are plenty of through hole drivers out there. Look at some of these Gate Drivers
You can either scroll through the whole list, or start going through the top and selecting exactly what you are looking for

...and then you need to specify why you need a discrete MOSFET in the first place. Integrated automotive high-side drivers like the BTS716G are so much easier to work with. They can even tell you when your output is short-circuited or open-circuit.

Thank you all for your responses. As I've indicated, I'm still on a very steep learning curve.

Before responding to specific comments, let me say that I'm not sure if I'm even starting with the correct concepts, assumptions, etc. I would love to go to n-channel MOSFETs (if not using fully integrated solutions), but not sure then which driver type to apply to use them as high-side switches.

Morgan, your comment about diode D3 is exactly what I'm looking for. Thank you. As I mentioned a bit earlier, I actually would like to pursue the discrete component solution as a learning tool. (Whether or not it's used in the finalized project is beside the point.) That said, I am also going to look for a more integrated solution (single automotive driver chip, or n- or p-channel driver plus MOSFET). Also, your suggestion of the BTS716G had me excited. ...until I saw that it's not through-hole, and doesn't carry enough current (I need minimum 7 amps continuous). :frowning:

Tom, I couldn't seem to figure out what to even look for (when I supplied all the parameters I thought were applicable, I'd always get 0 results).

Mark, as much as I could figure out (which is relatively little at the mo'), the MIC4422 seems to be a n-channel, low-side driver only. If not, could you suggest a schematic with it set up as a high-side, n-channel driver? If not, any suggestions for other solutions?

NB I really want(ed) the MIC4422 to be workable as it's available in the real-estate saving TO-220-5 package. I have real estate limits for this project, but vertical room above the shield isn't (yet) one of them. :wink:

Welp. I'm off to search for a single element solution that can high-side switch 7-10amp via 500Hz PWM. (It would be nice if the higher frequencies the Arduino can produce could be used as well, but that's not important for this project...)

Thank you to everyone who has commented so far. I'm looking forward to more. ;D

Cheers!
Dirk

You keep wanting to use a n-ch as a high side switch. That's not the typical application of n-ch mosfets. They are meant as low-side switches, and p-ch are used for high side. The n-ch is easier to implement, as far as component count and ease of use with the arduino, but p-ch mosfets can also be used when required. The required gate voltage needed to shut it off is the issue that needs addressed in general

As for trying to select parts at digikey, sometimes if you get too specific it will eliminate viable components. If you specify a 12Vds mosfet w 5Vgs, it eliminates the 20Vds 5Vgs parts. It also eliminates parts that have no specifications for the particular field you selected, but the part may very well have exactly what you wanted.
In short, be a bit more general. Select the n-ch or p-ch. Select the through hole component. Then watch the part count when trying to pick voltages. You will see there are differences between a 3V logic level part and a 3.3V logic level chip in the number available, even though both would work for what you want.

Thank you for your comments, Tom.

tinman13kup:
You keep wanting to use a n-ch as a high side switch. That's not the typical application of n-ch mosfets.

I'm aware of the differences between n- and p-channel. I'm not sure I've emphasized a preference, but yeah, I would prefer n-channel because of cost, efficiency (low RDS(on)), and (as far as I've been able to understand) switching speed (lower heat production due to switching). It's biggest downside is that a driver is needed as a high side switch, but I am finding some single-element solutions; just trying to find one that satisfies all my criteria for this project. Note that at the start of this topic I attempt to outline a way to speed up a p-channel MOSFET. The IRF4905 seems to be the best of its type for this project, but I'm still thinking that a 1 or 2 piece n-channel solution may work better.

tinman13kup:
As for trying to select parts at digikey, sometimes if you get too specific it will eliminate viable components. If you specify a 12Vds mosfet w 5Vgs, it eliminates the 20Vds 5Vgs parts. It also eliminates parts that have no specifications for the particular field you selected, but the part may very well have exactly what you wanted.
In short, be a bit more general. Select the n-ch or p-ch. Select the through hole component. Then watch the part count when trying to pick voltages. You will see there are differences between a 3V logic level part and a 3.3V logic level chip in the number available, even though both would work for what you want.

(Nearly) exactly the issues I encountered. I'm new to this - and to this type of parametric search tool - so am still muddling my way through to understanding. :stuck_out_tongue:

Cheers!
Dirk

(tentatively) Woo hoo! I think I may have found a winner, the AUIPS6021. In the TO-220-5 package, it appears - to me - to be able to handle up to 12A and 1500Hz switching speeds.

Two questions (as I'm not sure I'm fully understanding the specs):

  • can this device be used for PWM (at the Arduino's 500Hz) control of 7A loads?
  • at what current level would a heat sink be needed?
    Cheers!
    Dirk

Even though single-chip solutions appear to exist, it seems they have relatively limited current carrying ability and costs tend to be rather high (at least in through-hole packages).

I'm now looking at 2-chip (1 controlled PMOSFET + 1 MOSFET driver) or 3-chip (2 controlled PMOSFETs + 1 dual-channel MOSFET driver) approach. Again, it appears I'm out of my depth on some of this. I'm finding plenty MOSFET dual driver chips (TPS2812, MC34152, TC4427), but they all appear to be designed for low-side (n-channel) devices. I have however, seen a few instances of them driving p-channel devices, but not in ways of which I can make sense. :confused: ...um, maybe more accurately, I can't see why they can't be used in exactly the same way for p-channel devices.

Questions:

  • Can n-channel MOSFET drivers be used to drive p-channel MOSFETs?
  • If "yes" to above, would it look different than driving an n-channel MOSFET?
  • If "yes" to both of the above, how would that look different than driving an n-channel MOSFET (schematic, please)?

NB I've also been digging around on using n-channel MOSFETs but it appears that at the current carrying capabilities I'm after, the IRF4905 (of which I have a few) holds its own as far as RDS(on) (.02 ohms) goes.

Cheers!
Dirk

To be able to quickly switch off a P-MOSFET, it is best to use a voltage higher than the supply voltage at the Drain. Driver chips for that generally use some kind of voltage-doubler circuit, which means they need an external capacitor or two when they're creating that voltage.

Finding a simple driver without the voltage booster might be more difficult.

dephwyggl:
Allan, Mark, thank you both for your comments.

I've looked around and have not been able to find anything in a through-hole IC (I have to be able to reasonably breadboard things for testing) that makes sense to me. ...yet. I'm learning. :slight_smile:

Two things:

  • I would not mind at all pursuing a discrete component solution - just for the knowledge. Any and all contributions to this are very much appreciated. (I.e. Exactly how much magic smoke would be emitted by either of my suggested schematics; improvements; alternatives; etc.)
  • If anyone knows of a through-hole IC that can drive 1 or 2 n- or p-channel MOSFETs at up to 7 amps (each) at the Arduino's default of 500Hz, I'd love to hear about it.

People only tend to use n-channel these days, there is no need for p-channel with a charge-pump driver chip. n-channel are 3 times better than p-channel for equivalent die sizes due to the 3 times better mobility of
electrons over holes.

The driver doesn't drive at 7A, the MOSFET switches 7A, the driver pushes a few 100mA into/outof the gate.

[/list]PS An n-channel power MOSFET solution would be great! Better selection, better current handling, etc. but must be able to be used as high-side switch.

The HIP4081A driver is a full H-bridge but can be configured for several separate loads I think (all n-channel, both low- and high-side) It has a charge-pump so can handle high-side switching without needing constant PWM.

Cheers!
Dirk

Thank you Mark, Morgan.

It seems I'm too far out of my depth on all of this; I feel like I'm running around in circles. I sincerely thought I'd be able to do this without significant expense or complexity. It appears not. ...certainly not at any level I could understand.

As far as I can tell at the moment, there is no simple solution to driving a 7A p-channel MOSFET at 500Hz, and an n-channel solution definitely incurs complexity (and doesn't appear to produce anything significantly better). At the moment, it seems that my initial guess at a discrete component solution is simpler than any driver IC approach.

I'll need to think on this for a bit.

Thank you all for all of your help, suggestions, and comments.

Cheers!
Dirk

PS I really do want this project to work - somehow. I may just try a few things, see how much magic smoke it takes to produce results - any results...

As mentioned, I really want to get this to work, so have started a new thread which will - hopefully - have fewer opportunities for distractions: Automotive PWM control of p-channel MOSFET (IRF4905) as high side switch

MarkT:
The driver doesn't drive at 7A, the MOSFET switches 7A, the driver pushes a few 100mA into/outof the gate.

The driver chips will quote staggeringly high amperages going into or out of the MOSFET gates. That's because they are looking at peak amps driving the capacitance. Even 100mA is only going to exist for a few nanoseconds until the capacitance is charged and current goes to zero.

MorganS:
The driver chips will quote staggeringly high amperages going into or out of the MOSFET gates. That's because they are looking at peak amps driving the capacitance. Even 100mA is only going to exist for a few nanoseconds until the capacitance is charged and current goes to zero.

I've noticed that. The drivers I've looked at spec 6A and 9A. Yikes! That's a bit of current - but only for brief moments (in the case of the IRF4905, fall time - when we need all this current - is 96ns, so I'm guessing maybe half of that time will need whatever current the gate can handle.

I'm exploring doing all this "manually" at Automotive PWM control of p-channel MOSFET (IRF4905) as high side switch...

Thank you for your comment, Morgan.

Cheers!
Dirk