Frequency to frequency converting

Hey guys and girls!

In little project of "reverse-engineering" of car instrument cluster and transplanting in into different car I am working with my friend (dont ask details :smiley: ), I found issue with speed and rpm signals. To explaint that, IC simply expect pulsed signal (0-5V) on either of inputs with range of 0Hz-166Hz for rpm and 0Hz-250Hz for speed (tested). But vehicle rpm sensor gives up to 4kHz at 3000 rpm (did not rev up engine more :stuck_out_tongue: ) and we have no ideat about speed since it is mechanical atm and we are working on electric conversion, but I am pretty sure output frequency will be different as well then IC required.

I did try use dedicated ic as LM2917 and AD654 in combo as F-V to V-F conversion but can get it working. Hate timing stuff. Now kind of looking at micros to do a job. It seem like Attiny85 could handle it but not sure.

So I am looking for ideas and solutions. Does dedicated F-F conversion IC exist? I came empty handed from search. Is using tiny85 feasible solution? Or I should continue on F-V/V-F circuit? OR does anybody some other idea? I am completly out of any idea atm.

Thanks :slight_smile:

Sounds like the rpm one may simply be a question of dividing by an integer factor (which is relatively
easy as you can count edges).

For a non-integral ratio your idea of f/V converter followed by V/f converter seems plausible.

Using a microcontroller you'll have to do the same thing in software: estimate a frequency value
from incoming pulses and synthesize a frequency output from a frequency value.

The latter step sounds like a job for DDS style generation, the former is probably doable
by averaging the pulse times, taking the reciprocal to get a frequency value.

Silicon Chip magazine published a number of circuits to do this. It would be worthwhile paying for online access to their articles.

There is a lot of counters that may be used for frequency division with integer ratio. Such as Johnson ring counter if the ratio is not power of 2. For non-integer ratio probably a PLL may be used.

You can bring down the rpm frequency by using chips like the 4017 decade counter, with any factor of 2-10. It seems like you would need two of those in cascade as you have to go down by a factor of 30-40.

Thanks for ideas.
I am not sure about input lienarity. From measurments, rpm seem to be around +31-34 Hz with each 1k rpm, speed is about 20-27 Hz each +20km/h. Inaccuracy or this non-linearity maybe just error in measurment and not actual thing. Simple test with arduino and modifed blink without delay with variable delay, I was able to succesfuly move needle in gauge in whole range. So output to cluster seem pretty easy and doable.

Lower frequency of rpm signal may be good start. Signal is produced by variable reluctance sensor near toothed wheel inside injection pump. 23 teeth on wheel, 1 rotation per 2 engine rotations. Giving 11,5 β€œpulses” per 1 rpm. BUT. its is not square (for obvious reasons) neither sine wave. It is what I call a broken pulsed sine wave. And frequency do not corespond wiht measurments. Calculation say it should be at 1000 rpm: 1000 x 11,5 = 11500 pulses per minute. 11500 / 60 gives 191,6 Hz. My scope show it is about 1250 Hz. Not sure what is going on, but original tahc is working kind of.
Back to problem. Decade counter that ll brings it down 10 times seem like option. I dont see any reason to keep it in kHz. Also 4017 could help to form pulses as original pulses have weird shape.