I'm switching a 5V 200mA case fan with a PCF8574. Since this expander is best used as a current sink (it can sink 25mA, but I think it can only supply something like 300uA), I supposed that a PNP would be best for driving a current sink NPN.

Purple: \$I_{C}\$ (datasheet maximum)

Blue: \$I\$ (circuit performance)

Note: R values aren't final, I still need to adjust those and 100mA was the lowest value NPN/PNP I had to hand.

Case fan active HIGH

It seems to me that two NPNs would be fine, since it only requires 8uA, and the expander can supply 300uA (if I'm not mistaken).

I wondered, what if you wanted active LOW instead of HIGH? For instance the PCF8574's outputs are HIGH at power on, so you may want your load to not turn on immediately. Is this an ideal way to switch a load with active LOW?

In either case, is it better to sink 8uA or source 64uA? The difference seems negligible in terms of efficiency for my case (though I suppose a very low power/high efficiency system could benefit from saving 56uA).

Case fan active LOW


Additional questions:

  • Are R17 and R15 needed? Since the expander is current limited, perhaps they're redundant?
  • I suppose you could also high side switch the fan with a PNP (but I didn't have a powerful enough part to hand) and drive it with an NPN. For future reference, would this give me better performance?
  • Is the answer down to a decision between BOM size and energy consumption? i.e. If I used two BC337's (instead of 337 and 557/550), that reduces the BOM, but slightly increases power consumption.

3 Answers 3


Active low is preferred for any significant load current.

IO ports can only source few hundred microamps, but can sink many milliamps. There is a stronger source too but it is only used momentarily for rise time acceleration.

You could use a single 200mA PNP transistor or P-FET as a high side switch from the GPIO to drive the fan.

Good idea to have some margin.

  • \$\begingroup\$ Are you saying an NPN wouldn't be needed to protect the 3V3 IO expander from the 5V on the PNP base? I'm assuming we're using GPIO and IO expander interchangeably. \$\endgroup\$ Commented Nov 4, 2022 at 15:10
  • \$\begingroup\$ Also, would you recommend using the 200mA max PNP at it's limit to switch a 200mA load, or would you try to find a higher current part? \$\endgroup\$ Commented Nov 4, 2022 at 15:12
  • \$\begingroup\$ For a P-FET high side from 5V, to drive the gate from 3V3 wouldn't cause it to fully saturate, right? Would this be acceptable, or would you go for an NPN driver to fully saturate the gate? I guess it's part-dependant... I know some FETs have a really low VGS(th). \$\endgroup\$ Commented Nov 4, 2022 at 15:27
  • \$\begingroup\$ Posted as new question: electronics.stackexchange.com/q/641206/288848 @JM Thanks for answering :) \$\endgroup\$ Commented Nov 5, 2022 at 8:03

R15, R17 may be still needed even with current-limited expander outputs, but you can do without 1K pullups R19, R2 in your circuits, if you connect the two transistors of your circuits into relevant Darlington (2 NPNs) or Sziklai (NPN, PNP) configuration.

I would not touch upon the standard solution of using the ULN2803A Darlington transistor array for enhancing the driving performance of PCF8574 for two reasons: first, you are preoccupied with the BOM size, and second, product recommendations are frowned upon here. That said, I still refer you to the ULN2803 datasheet: maybe you will find the datasheet diagrams helpful as a guide how to connect your BC337/BC550/BC557 transistors into Darlington/Sziklai pairs. Also, it seems you have to drive two inductive loads, the case fan motor and the PSU relay. The ULN2803 datasheet discusses the use of flyback diodes for switching inductive loads.

With the current capability enhancers like FETs or Darlington pairs in your driver, you eliminate the PCF8574 sink/source output current limitations and are free to select either active low or active high for driving loads of your circuit implementation.


You might consider using an opto-isolator or opto-MOS relay. Such a device would require only about 5-10 mA to turn on, and the output can be configured to drive a load connected to ground or most any voltage. It also offers isolation, and there are devices that can handle several amps or a couple hundred volts.

  • \$\begingroup\$ I don't know why, but I always feel that optocouplers/optoisolator are overkill when dealing with DC only circuits… I only tend to use them for controlling AC (from DC). Anyone else think the same or is it just me? \$\endgroup\$ Commented Nov 5, 2022 at 9:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.