Electrical – pwm amplifier with npn bjt

amplifierbjtpwmraspberry pi

I'm trying to do a pwm amplifier in order to control 3 fans with one pwm signal. Since there are three fans and according to the pwm specs allowed current per each is 5-8mA, I expect current load of around 30mA at max. But my pwm generator (raspberry pi) has 16mA limit, so I need some sort of amplification.


simulate this circuit – Schematic created using CircuitLab

An idea to solve the problem is as follows: when pwm source is low (0V), then the base on the transistor is pulled to the ground, so the transistor's collector/emmiter should behave as an open circuit. When pwm source is high (+3.3V), then collector/emmiter should behave as a short circuit.

If all that is correct then high "pwm source" should pull down the "pwm output" to ground, thus giving low pwm output. And low "pwm source" should do nothing and fans on the receiving side are expected do the rest with pull-up to high (by default, as with no pwm control).

My question — is the schematic above is good and is there any caveats?

Best Answer

You will need to investigate the fan PWM input requirements. Most times they will need a bias to activate the input. If your fans are like this then you may need to add a pullup resistor from the NPN transistor collector to +5V.

The bias source for the fan PWM inputs for all the various fans that I've designed into server platforms use an open drain driver (equivalent to your transistor circuit) and a 5.1K ohm pullup resistor to +5V. There is no problem having the pullup to a +5V source despite the fact that the fan runs off +12V. The only requirement is that the PWM driver GND and the fan GND need to be one and the same.

You could derive the bias source from the fan +12V using a voltage divider but do know that the input impedance of different fans varies and the optimum voltage divider for one type of fan may not be ideal for another type of fan. This can be somewhat mitigated by making the resistors in the divider suitably small in value but then you would be consuming excess current from the 12V supply when the fan drive signal goes low.