Skip to main content
Topic: Help with a 3pin Fan controler (Read 3490 times) previous topic - next topic

Help with a 3pin Fan controler

Hi I would like to design a fan controller for PC fans that use only 3 pins.
GND, VCC, and RPM.

If you PWM drive the VCC you lose the RPM, there is a possibility of stretching a pulse from time to time just to read the RPM, but this brings audible noise into the fan. So I think driving via PWM is impossible. Although if you have any suggestions I would love to hear them.

Liner driving via PWM is covered by this Maxim http:// note, but the problem with liner driving is power dissipation in the output transistor. I would use either P mos, or PNP in a to220 package.
the circuit could be able to provide 500mA of current, which is around 6W if the fan gets stuck and draws 500ma at 1v, then the Transistor will take the full 6W on it self and I don't think it could handle it without a heat-sink.

Would soldering the back of a To-220 to the board provide enough of a heat sink to handle 6W?

Any suggestions how this could be designed without the use of heats sinks?
best regards FIlip.

Re: Help with a 3pin Fan controler

Reply #1
I thought some more on this subject and came up with a current controlled design.

one op amp is current sense amplifier, and gives on its output 0-3.3v for 0-500mA current, another Op amp is a error amplifier.
one input is from the current sense, the other is driven by a DAC (PWM with RC filter), its output drives the "output transistor".

In this way the MCU could have output voltage and output current over its ADC, and drive the PWM by an algorithm to keep the output transistor within 2W. One good thing about this design is that its inherently current limiting.
best regards FIlip.

Re: Help with a 3pin Fan controler

Reply #2
Have a look at this project http://, there is some very good info on controlling 3 and 4 pin fans and I can vouch that it works well (bought/built one - in use for nearly a year now).

Re: Help with a 3pin Fan controler

Reply #3
thanks that looks like a great project, he uses pwm and a large output filter to get different analog output levels.Buthis circuit seems to be missing current sensing or fault protection, maybe it could be implemented by the pic reading the RPMs, but still no real short circuit protection.

*I refined my schematic somewhat, I changed the PWM input section somewhat, making it more stable and component tolerant. the cool thing about it is that its ultra cheap to build and you get current sensing.
best regards FIlip.

Re: Help with a 3pin Fan controler

Reply #4

I'm glad you found the circuit interesting, are you able to share your changes? I am interested, and I am sure that the designer, Geoff would also be interested.

You are correct that it does not do any current sensing. It does read the fan PWM and shows that in the GUI and also uses the PWM to trigger alarms. I had one alarm a couple of months back for one fan that would no longer start up at the very low set speed, so I had to increase the minimum speed for that fan.

As a side track I see an opportunity for this sort of controller to be integrated  as a generic device, into applications like Speedfan and OpenHardwareMonitor. Both projects have accepted, but not started work on this see
http:// and here http://

Re: Help with a 3pin Fan controler

Reply #5

A stepper motor driver like the one above might be a useful way to go about it. The one above has 16 current levels output on it's h-bridge.


Re: Help with a 3pin Fan controler

Reply #6
It turns out fans for computers have protection in themselves. By specification they are not allowed to draw more then 2Amps of current, and in case of breakdown the chip used in them are made so that when the fan fails it fails in an open circuit. so current limiting won't be needed, although a fuse is always a good Idea. I'll post the update for my schematic if anyone needs to drive anything by current control with a liner system, although because of the dissipation inherent in linear design heat sinks need to be provided on the output transistors.

I've since decided to use Geoff's idea, although I'll increase the pwm frequency 125Khz to lower the C and L values. I'll use 10uHs and 30uF for my circuit, aslo separate shotkys will have to be used, and I'll add a current sense to the mix, with a low side R sense and an op amp.(same as in my circuit)
The current sense will be used to detect how the fan works over time, and  have the possibility to warn the user that too much dust has accumulated.
*I've added NI multisim 11 file of my schematic if anyone would like to play around with it
best regards FIlip.

Re: Help with a 3pin Fan controler

Reply #7
the isense going into the opamp should be hiZ. protect that sucker.

the out put of 3pin fans is a pulse based on speed, and have built in OC protection.

why not use a small micro that has a counter and a few adc channels. some have built in temp sensors, this could be achieved with only one transistor and a few passives.

of the top of my head parts list c8051f300, bs170, 3 caps, and 3 resistors. assuming you have access to a 3v3 supply.