I have successfully used a PCF8574 package to host 8 I/O lines via i2c. However, I'm now finding that this package is inadequate for driving the input of a hexfet I'm using. The PCF8574 can sink 20mA (a LOW output) but can only source a miniscule 4mA (a HIGH output). Without adding a lot of inverters, any way to bridge this deficiency?
Basically the PCF8574 is driving the incoming signals for the hexfet gate pin. I thought the outputs might be enough for the hexfet in a plain old "active high" orientation but I guess I read the datasheets incorrectly. I bet this is a general idiom that has a straightforward answer, though.
In this circuit, I'm using LEDs/resistors as test loads (the loads are connected BETWEEN the M-pins that you see near +12VDC arrows). The test sketch just does a Blink 500ms square-wave to all outputs. When the output pin of the PCF goes HIGH, the loads get a dim flash, but nothing like a square wave, and nothing like the intensity that the same voltage would produce in the LED/resistor alone.
The source impedance of the driver when high (2.5k) and your 2K pull down resistors are forming a voltage divider such that the gate can only raise to 2.2 volts, which is not enough to fully turn on the MOSFET.
So either eliminate the pull down resistors or change them to say 50K. There still will be a switching time limit as the MOSFET has a input capacitance of around 1,000pf that the driver has to charge or discharge and the limited driver impedance keeps the switching speed limited to the total RC time constant.
So first play with those pull down resistors and see if you can't get better results.
Well, this is what I love about the forum. Plenty of folks from whom I can learn. Thanks, retrolefty!
One snip later, the 2K pulldown is removed, and an LED is blinking happily. I will try the 50K (47K seems close enough standard value) in a bit. Now to try a solenoid instead of an LED for my load.
The switching time is almost of no concern, since even if it took 10ms to switch, all of my loads would have approximately equal lag, and nobody would really notice.
Glad to help, hardware I can help with sometimes It’s the software side side that kick’s my butt all to often
Switching time becomes more important when one is trying to utilize PWM to large current loads. That is where it is easy to burn up the MOSFETS even though there spec sheet says they should be able to handle the current.
When the MOSFET is in transition between on and off that it’s heat dissipation can go through the roof when trying to switch high currents. That is where nice low impedance drivers, driving the MOSFET gate, can really help out as it forces the transition time to be as short as possible.