I'm working on an automotive project which will use an Arduino as a controller. For this part, the requirements are:
-
use the IRF4905 (PMOSFET, 55V, 740W, .02 ohm RDS(on)) as a high side switch
-
switched load could be up to 150W (preferably without heat sinks on the PMOSFET)
-
EDIT: load is not (very) inductive (mostly LED (arrays), and possibly incandescent and halogen lights)
-
loads to be managed with the Arduino's native 500Hz PWM
-
all components to be through-hole
Assumptions which can be made for this topic: -
+V is reliably 11-15V
-
reverse polarity protection is in place
No assumptions can be made about which PWM values will be used or when (they'll be all over the place).
Without knowing as much as necessary or learning a ton of the calcs required to make complete sense of everything, I've read lots on this (here and elsewhere) and have not been able to find any complete answers. I did a Google search on these forums which produced a lot of topics on this; I've read every one of them and even started my own. Lots of hints, allusions, partial answers, etc. - a lot of it beyond my understanding, and nothing definitive.
Here is a commonly suggested schematic to allow logic level control of PMOSFETs:
However, PMOSFETs won't last very long if the Arduino's 500Hz PWM is applied to them; switching takes too long and they'll overheat. To mitigate this heat production, reductions in switching times are required; here are two discrete-component approaches which I've cobbled together from suggestions and circuits I've found in various places:
It is likely neither one will work as-is. While I appreciate learning more about the hows and whys of doing things these ways, at the moment I just need to get it to work - preferably as efficiently as possible while keeping discrete component count to a dull roar.
What I know so far:
- Large values of R5r/R3r have a detrimental effect on turn-off times of the PMOSFET. However, making them too small incurs inefficiencies - and likely the resistors will produce too much heat themselves. Once the PMOSFET has been shut off, negligible current is required to keep it there. However, when it's on, most current is routed through this resistor, so heat becomes a concern. I'd be happy to hear of other or additional ways to minimize turn-off times while minimizing heat production from any components.
- While I have experienced some glimmerings of understanding, I don't know how far off I am with either the "5" or "3" circuits.
- I don't understand hardly any of "5", and have only partially figured out the push-pull arrangement in "3", so I'm not sure of any of the supporting components in either circuit (missing, in excess, mis-valued, etc.)
NB I'd be happy to hear of any high side switch, p-channel MOSFET gate driver through-hole IC which would allow the above to be accomplished with minimal (one?!) components.
I'm looking forward to a definite way to reliably use an Arduino's native PWM to manage high current loads via PMOSFETs in an automotive environment.
Cheers!
Dirk