A three-wire bus is commonly used to control digitally controlled potentiometers (DCPs). One example of this type of bus is Xicor's 32-tap X9315 (U3), shown in the figure. This asynchronous bus has no protocol and is popular in real-time and control applications.
The bus consists of a chip-select pin (—CS) required for addressing, and an up/—down pin (U/—D) to establish the direction of the potentiometer's wiper. It also includes an increment pin (—INC), which advances the wiper. A gated clock often is used to drive the —INC pin. When the wiper reaches the end of the potentiometer in the up or down direction, it remains at that limit (it "stops").
Many continuous real-time applications require that the wiper's direction be automatically reversed when its limits are reached. Fade-in/fade-out controllers in neon light systems are a good example of this type of application.
By changing the high/low state of the signal on the potentiometer's up/—down input, the U1 and U2 portions of the circuit automatically reverse the wiper's direction. U1 is a variable-length serial shift register, while U2 functions as a J-K flip-flop connected in the toggle mode. A variable-length shift register can accommodate 16-, 32-, and 64-tap potentiometers if the register's L1 to L32 lines are programmed appropriately.
For every clock pulse at VIN, the DCP's wiper is moved forward one position and a logic 1 is moved one position in the shift register. The Q output of the shift register will go high after 31 pulses. As a result, the output of the J-K flip-flop complements Q's output state. Differentiated by the R1/C1 circuit, this signal also resets the shift register to start the cycle over again. If VIN is a continuous stream of clock pulses and the potentiometer pins are connected across a 5-V supply, the wiper output voltage (VW) will be a staircased triangular signal.
The circuit's operation was confirmed over a 10-Hz to 100-kHz range. For continuous, closed-loop feedback applications, adding the U/—D signal to the stop-less circuit reduces the pin count of the serial bus.