Digital Potentiometers (Digipots)
Clarus Goldsmith, June 2024
Last updated
Clarus Goldsmith, June 2024
Last updated
Digital potentiometers function using a "ladder" of resistors with floating wires at each junction. By setting the wiper register, the user can select which junction is connected to the wiper, and thus how many resistors in the ladder comprise the connection from A-to-W or from W-to-B.
The total number of resistors in a digipot is referred to as its number of taps or steps. In the above example from the manual of the MCP453X/455X/463X/465X family of digipots, the digipots can have 129 taps (i.e., 128 resistor ladder with 129 possible wiper positions) or 257 taps (i.e., 256 resistor ladder with 257 possible wiper positions). The resistance change at each step is then calculated as:
The max allowable current across a digipot wiper is around 1-2.5 mA.
This resistance affects the functional range of the digipot, and can be quite high. For example, the DS3502 digipot has a resistance of 10kΩ between A and B, but has a 5kΩ wiper resistance. That means the functional range of resistance of the DS3502 between AW or WB is actually 0kΩ-15kΩ.
As a further example, here is the equation for calculating the WB resistance of the MCP453X/455X/463X/465X family of digipots:
Most digipots are controlled across the I2C bus. For more information on I2C, go here:
I2C Communication with ArduinoHere is example code for getting a MCP4531T digipot to increment its wiper value over time, and print the voltage at the wiper over Serial. The wiring diagram necessary for this code is also included below.