You enjoy significant advantages when using DPPs (digitally programmable potentiometers) with increment/decrement serial interfaces. Programming the serial interface is simple and fast, and you can adjust the potentiometer in real-time applications. The interface, however, provides no information about wiper position, and this information is important in some applications. If, for example, you use the potentiometer to control a parameter in a closed-loop, real-time application, the data reflecting the final wiper settings can be valuable in evaluating both the product performance and the circuit design. The circuit in Figure 1 keeps a digital record of the DPP's wiper position by using two presettable CD4029 up/down counters, IC2 and IC3. The counters monitor the control signals INC and U/D of the DPP, IC1.
Figure 1. | Two up/down counters keep track of a digitally programmable potentiometer’s wiper position. |
During power-up, the wiper assumes position (00)10, which it takes from previously programmed nonvolatile memory. Also during power-up, R1 and C1 differentiate the 5 V power supply; this differentiated signal serves to preset the binary counters to (0000 0000)2. Thus, the DPP and the external IC2/IC3 counters are at the same point after power-up. The level-sensitive up/down signal establishes the direction of movement of the DPP's wiper and the direction of the count. The edge-sensitive signal advances both the wiper and the counter. The pin of the DPP responds to negative-edge triggering, and the clock input of the counter responds to positive-edge triggering. If the signal driving the line is a pulse (a common occurrence), the two inputs are compatible.
The Q outputs of the counters (DB0 to DB7) indicate in binary notation the location of the wiper. You can use the same circuit, using two counters, for DPPs having as many as 256 taps. The DPP does not “wrap around” when the wiper advances to its upper or lower limit. The counters, however, do wrap around. To identify the case in which the digital counter is not in synch with the DPP, you can use the MSBs of the counters as flags. DB7 can serve as a flag for the 32-tap CAT5114 and the 100-tap CAT5113. You can change the initial count during power-up to something other than zero by preprogramming the DPP and setting high and low levels on the JAM inputs of the digital counters to the desired value.