I need a robust and reliable way of taking a RPM signal from the W terminal of a standard automotive alternator. Most of the time the signal will come from a 12V alternator but there is a requirement for it to be compatible with 24V (28v when charging).

Here is what the signal looks like straight from the alternator: RPM output

I have used this circuit to convert it into a 3.3V DC signal: 2N2222 Circuit

and I then get this signal at the same RPM: 2N2222 output

so far so good but when I triple the RPM a lot of noise is introduced like this: Fast RPM the time in-between the lines here is around 928µS.

(Update) The noise however seems to be introduced at the input as this is the waveform from the alternators W output at the same speed: enter image description here

I have added a 10K resistor at the output to the MCU and the output waveform now looks like this: enter image description here Red is without the resistor, blue is with.

So my questions are:

Is the noise in the last picture a problem, if so how do I get rid of it?

Is this signal (with or without the noise) suitable and reliable to feed into a MCU to read RPM?

How can I improve the circuit to make it reliable and robust for production grade products?

Starting from scratch what would be the most reliable circuit?

  • 1
    \$\begingroup\$ What does the original signal look like at this new rpm? \$\endgroup\$
    – Andy aka
    Sep 9 '18 at 11:41
  • \$\begingroup\$ Good point, I'll scope the output at this RPM to workout where the noise is being introduced and I'll update my question. \$\endgroup\$
    – B.Baker
    Sep 9 '18 at 11:43
  • \$\begingroup\$ It looks like the noise is at the input, I have since updated \$\endgroup\$
    – B.Baker
    Sep 9 '18 at 14:42

You may use an RC filter with a time constant of approx 50% of worst case max pulse width RPM period then use a CMOS Schmitt trigger inverter which has 33% hysteresis to reject noise between approx 1/3 and 2/3 Vcc after low pass filter and proper divide ratio to scale.

  • But for CMOS ground the unused inputs.
  • But you can also make a one-shot out of these gates with a diode cap resistor and 5Vreg to make the Tach voltage directly by averaging the 1-shot output in DC with a similar filter as before, except now RC will be about 20ms. depending on the desired slew rate. ...vroom... except at idle the freq. may be too low and flutter he voltage so a CMOS transmission gate can be used as a S&H to eliminate the flutter using the new clock and filtered DC Tach signal.

Thus if the maximum interval of the pulse or frequency is 10kHz or 50us "high" then use a 5us time constant = RC.

Also, use twisted pair (UTP or STP) to reduce spark plug crosstalk or whatever is causing this.


simulate this circuit – Schematic created using CircuitLab

  • or use 3.3V
  • Don't forget different vehicles have different pulley ratios that affect Alternator/Motor RPM ratios.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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