I want to calculate pulse periods from a tacho output of a DC fan. I want to read pulses by a MCU and convert them to RPM and display in LCD.

But I'm confused with the following description of RPM conversion from the manual:

enter image description here

It seems they mean I should read two consecutive periods and obtain T0.

So N = |60/T0| rpm (?)

My confusions are:

1-) Why would I need two sum periods but not use a single one? Aren't they almost the same for a constant fan speed?(Because in coding it will be more difficult to implement to calculate two consecutive periods)

2-) Why are there 1/4 in both sides of equation? And is N = 60/T0 where T0 is the sum of two consecutive pulse periods?


1 Answer 1


Reading between the lines of the specification, it sounds like the tacho output is the result of two 'flags' of something, perhaps magnets to a Hall sensor, or optically opaque material between a LED and photodiode. This results in two 'highs' and two 'lows' per revolution.

Manufacturing tolerances will mean that the length of one high is only approximately 1/4 of a revolution. If you timed the length of one high, and multiplied by 4, you would only get an approximation of one revolution period, not exactly. To get it exact, you would need to time over all four high and low output pulses.

It may be the case that an exact speed doesn't matter to you, in which case use one, or a high/low pair. It may be that you could time over one pulse, and correct it for your particular fan. However, if you were building several of these, then the correction could be different for each fan. Using all four pulses means that all fans would respond the same way, without correction.

It may be that you use a high/low pair, and improve resolution by averaging. However, due to manufacturing tolerances, it's likely that one high/low pair does not have the same duration as the other high/low pair. If your averaging was asynchronous, you'd get an unnecessarily noisy result if you sometimes averaged only the first pair, or only the second, or a mix.

What the specification is telling you is that only using a complete cycle of pulses will you get a result that's accurate every time.


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.