RC Frequency to Voltage Converter
SEARCH for TACH designs. This is very common.

But define your specs carefully;

f1 min.=___ Hz    Vout=___ % Ripple=___   
f2 max.=___ Hz    Vout=___ 
Slew rate=____ ms or ___ cycles 
   ( f1 to f2 to f1  is related to %ripple)


Tach is short for Tachometer which can take a pulse per rev and convert it into a voltage for some analog reading of Speed or RPM.

The principle is simple.  For each cycle of f, create a constant pulse width, Tpw, of some fixed amplitude Volt pulse at a fixed pulse duration so that when it is filtered by a low pass filter the frequency from the PFM is proportional to voltage.

The maximum output is to increase the frequency until the duty cycle is 100% at the pulse peak voltage. This means the V-Tpw product is also your transfer function of V/Hz for some Tpw for each cycle.

There are many implementation methods which you look up after you understand how they work.


  One solution for you is a linear VCO in a PLL IC (eg. '4046) to operate with some linear voltage from 10k to 20kHz. Then apply gain and offset to "scale your voltage".


You only have a 2:1 f range, so that part is easy but a fast slew time, so this is hard for the filter with low ripple.


  
  Look for PLL method or alternating S&amp;H methods.
  


For a full range tach. like 500 RPM to 10k RPM has only a 20:1 range. So a simple is RC differentiator pulse with a comparator to make a short one-shot on the leading edge. This period must be less than or equal to your maximum pulse rate T=&lt;1/f(max)

other

For a 100:1 to 1000:1 range it needs more precision in the filter and 1-shot.


A precision one-shot ignores variations of input pulse height or supply voltage and integrates a time-averaged Voltage using constant current independent of input frequency then uses a Sample &amp; Hold (S&amp;H) circuit to save the previous time interval then update to the present value so there is less jitter.


PFM on a digital channel

This communication method can also be used as a spare bit on a digital communication link to represent an analog value with high resolution but does not need the full speed sampling rate a high-speed data link.  In this case, each PFM pulse sets a FF to a "1", which is only cleared by the channel when that bit is transmitted. This prevents sampling with alias effects of a beat frequency. 


e.g. a PFM from 0 to 10kHz can be sent on a spare bit of some  Mbps comm. channel sampled at a 10kHz rate and recovered at the other end without aliasing with 1 sample per pulse max and 10^4 resolution for low-frequency PFM values.  ( I have used this to monitor remote 2 servo motor bipolar analog currents  and used 0.1% of my SCADA data bandwidth at 10Mbps  circa 1077)



your example

f1 min.= 10k Hz    Vout=2V  % Ripple= 1%  !!   
f2 max.= 20k Hz    Vout=_4V__ 
Slew rate=__250us or _5_ cycles !!!


This requires the precision approach with a PLL with a fast loop.