Most of the filter design is done
in software because of the extensive computations. However,
since we are getting inputs directly from a waveform generator to the AT90S8535
microcontroller, we added 2 circuits to protect the chip and to avoid aliasing.
This filter has cut off frequency of 3333.33Hz. Two poles are used instead of a single RC circuit to get flatter frequency response at lower frequencies. To achieve a gain of 1, we connected the inverting input of the op-amp to the output. With a constant sampling frequency of 9 kHz, the maximum input frequency has to be 1/2 of 9kHz (from Nyquist Rate). For our purposes, the cut-off at 3.33kHz is sufficient to keep the higher harmonics of non-sine waves from aliasing. In addition, our target frequency range of 200 - 1600 Hz is sufficiently smaller than the cut-off, so that they lie under the flattest region of the curve, with the biggest possible gain of approximately 1.0.
Bode Plot Sketch for the Low Pass Filter
The Atmel Microcontroller has a 10 bit Analog-to-Digital Converter (ADC). In order to prevent unnecessarily large voltages or currents (e.g. from the -12V, +12V DC power source) from damaging the chip, we regulated the voltage from the output of the op-amp before it reaches channel A0 of the ADC. When voltages exceed VDD (5V) or become negative, the diodes will be activated and draw all current to VDD or GND respectively.