Years ago I played around with the whole fan speed control concepts and 3 wire fans with the tachometer out. I ran into a small caveat. When using PWM to control fan speed with a 3 wire fan the tachometer out will bounce around. Typically with 12 VDC applied (no PWM) most small PC type fans output 2 pulses per revolution. The problem or caveat when we use PWM is the fan power is being turned on and off at the PWM rate. The fan is only powered when a voltage is present on the power pin. When the PWM is at zero volts the tachometer out is also at zero volts. It looks a little like this:
Would this need to be considered?
Ron
Hi Ron,
I really like to see stuff like that where it is completely concise and illustrated so there's no doubt what is happening. I have to thank you for taking the time to do that.
The answer would have to be definitely yes. The PWM signal will not allow the tach signal to show up for some times that it must show up in order for us to be able to measure the tach output signal count. The count would be too low for the actual RPM the fan was really doing at the time.
The solutions are many, the first that comes to mind is to NOT allow the PWM signal to return all the way to zero. There may be a point where the tach still outputs a normal signal when the voltage is reduced but not at zero. Lets say for example "4 volts". The count detection scheme however would have to be able to read a logic signal that went from 0 to 4 volts however, instead of the usual 0 to 5 volts.
The second would be to filter the PWM into a pseudo smooth voltage so that the fan can still be controlled but the tach will still function, but again the logic would have to be able to pick up possibly a 4 volt logic signal instead of 5v.
Of course if we got pulses every 1ms and we got one that was 2ms, we'd know we missed a pulse right away, unless more came in at 2ms and then we would know the fan really did change speed.
Anther idea would be to look for a correlation between the times the PWM is sent out vs the way the tach responds. If we could predict the missing pulses then we could "fill in the blanks" and count 2 for one pulse instead of just 1 for example.
For a really simple example say we had found that at a certain speed range when we send out 5 PWM pulses we only get 9 pulses when we were supposed to get 10. We could count 2 instead of 1 for every 10th pulse. We may have to keep a table on the correlation, or maybe a formula would work, keeping in mind we dont always need a super duper accurate RPM indication either, as long as it is within say 5 percent or so.
Still yet another idea would be to use a slowly responding PLL (phase locked loop) where the signal we measure is kept in sync with the pulses, but is not the pulses themselves. Thus we would be measuring what the tach would be putting out if it had been working right