Low Pass Filter calculation

adcfilterlow pass

I am designing a circuit which reads a analog signal(DC – Response from a photo-diode exposed to tungsten lamp) to a 12 bit ADC. The ADC is MCP3202 running at 1Mhz speed and uses 16 input bits to get one sample of the result.

As per my calculations, I have calculated the response time of the low pass filter as shown below:

Chip Speed (Mhz)    1
Period(us : microSecond)    1
No of Process Cycles    16
Response time required (us) 16
Response time required (ns : NanoSeconds)   16000
Response time required (ms : MilliSeconds)  0.016
Response time required (Seconds)    0.000016 or 1.6E-5

I believe that if my RC circuit is slower than the above response time, then I will see a delayed response, which I should avoid.
Therefore, I choose the following Resistance and Capacitor values for my RC low pass filter.

R = 1 K
C = 5 nF

The cut-off frequency is calculated as :

 fc = 31830.9886184[Hz]

The response time is calculated as:

1.1512925465E-5

Does all of the above sounds OK or am I off track here?

Best Answer

You have not thought this through. You have not specified exactly what sort of signal you expect to see, or how accurately you need to know it. But let's say it's a step function, and since you're using a 12-bit A/D, you need to know its' amplitude to 1 lsb. So, for a full-scale input step, your filter must settle to one part in 4096 in 16 msec. For a simple RC lowpass, the response to a step is an inverse exponential with a response proportional to e^-t/RC. For this to settle to 1/4096 will take about 9 time constants, so the 1/RC = 16 usec/9. In other words, you need C at about 560 pF rather than 5 nF.

But all of this assumes that the signal behaves as a step, AND that you need perfect accuracy from the A/D. Note, for instance, that if the step occurs 8 usec before an A/D sample, your filter will not permit a perfect sample for 16 usec, but that sample will not occur until 24 usec after the step (8 usec to the first, inaccurate sample, then another 16 usec until the correct value is available). So you need to figure out exactly what accuracy you need, and when you need it. Only then can you design your filter.