Modern instrumentation requires digital control signals. These signals come from a central microprocessor or, in modern context, the popular parallel or serial PC ports. In recent times, digital potentiometers have eliminated the hassles from this interface for the analog section. Designers can replace the resistors of the analog design with digital potentiometers, thus providing the necessary digital control. However, digital potentiometers suffer more severely from temperature-sensitive performance drifts than their manual counterparts, and they exhibit finite wiper-resistance effects. We can configure the design for both Q factor and center frequency via a PC’s parallel port. The circuit requires no DACs or digital potentiometers.
The circuit, based on a two-integrator configuration, provides simultaneous high pass, low pass, and band pass outputs. By running simple code on the PC, we can choose from more than 150 programmable combinations of Q factor and center frequency. We can thus build a filter of desired parameters on the fly. The design uses quad analog switches DG308 together with octal latches for programmability.
The software provides the data bits on ports pin 2 through 9, stored in the latch that controls the analog switches and, hence, selects the appropriate resistance combination to select the desired Q and f0 values. The center frequency and Q values are: f0=[1/C1C2RP6RP7]1/2 and Q=(1+RP2/R1)/3, where RP2, RP6, and RP7 are PC-programmable resistances.
Data nibbles from port pins D2 through D5 provide ganged switch settings for RP6 and RP7, ensuring that they are always equal. Data nibbles corresponding to pins D6 through D9 control the value of RP2; hence, we use them for Q-value selection. For the given resistance values the switches employed have a finite on-resistance, RDS, of approximately 150Ω, which the design takes into account. For higher precision, we can use better switches having on-resistances of approximately 35Ω. Note that more switches provide a wider range from which to select. We can choose the resistances to suit the application’s bandwidth range.