

The AD5206 is a versatile digital potentiometer that enables precise adjustment of resistance values through digital control, typically via an SPI (Serial Peripheral Interface) protocol. It features six independent potentiometer channels, allowing simultaneous control of multiple resistive paths. This makes it an excellent choice for applications such as audio signal processing, sensor calibration, adjustable gain circuits, and programmable voltage dividers.
The AD5206 is particularly useful in systems requiring fine-tuned resistance adjustments without the need for mechanical potentiometers, offering improved reliability and ease of integration into automated systems.








Below are the key technical details of the AD5206 digital potentiometer:
The AD5206 has 20 pins, with the following configuration:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | A1 | Terminal A of potentiometer 1 |
| 2 | W1 | Wiper terminal of potentiometer 1 |
| 3 | B1 | Terminal B of potentiometer 1 |
| 4 | A2 | Terminal A of potentiometer 2 |
| 5 | W2 | Wiper terminal of potentiometer 2 |
| 6 | B2 | Terminal B of potentiometer 2 |
| 7 | A3 | Terminal A of potentiometer 3 |
| 8 | W3 | Wiper terminal of potentiometer 3 |
| 9 | B3 | Terminal B of potentiometer 3 |
| 10 | GND | Ground |
| 11 | CS | Chip Select (active low) |
| 12 | SDI | Serial Data Input |
| 13 | CLK | Serial Clock Input |
| 14 | SDO | Serial Data Output (optional, for daisy-chaining multiple devices) |
| 15 | A4 | Terminal A of potentiometer 4 |
| 16 | W4 | Wiper terminal of potentiometer 4 |
| 17 | B4 | Terminal B of potentiometer 4 |
| 18 | A5 | Terminal A of potentiometer 5 |
| 19 | W5 | Wiper terminal of potentiometer 5 |
| 20 | B5 | Terminal B of potentiometer 5 |
Below is an example of how to control the AD5206 using an Arduino UNO:
#include <SPI.h>
// Define SPI pins
const int CS_PIN = 10; // Chip Select pin
void setup() {
pinMode(CS_PIN, OUTPUT);
digitalWrite(CS_PIN, HIGH); // Ensure CS is inactive
SPI.begin(); // Initialize SPI
}
void loop() {
setPotentiometer(0, 128); // Set channel 0 to mid-scale (128/256)
delay(1000); // Wait for 1 second
setPotentiometer(1, 64); // Set channel 1 to 25% scale (64/256)
delay(1000); // Wait for 1 second
}
// Function to set the wiper position of a specific channel
void setPotentiometer(byte channel, byte value) {
digitalWrite(CS_PIN, LOW); // Activate the chip
SPI.transfer(channel); // Send the channel number (0-5)
SPI.transfer(value); // Send the wiper position (0-255)
digitalWrite(CS_PIN, HIGH); // Deactivate the chip
}
No Response from the Device:
Incorrect Wiper Position:
Excessive Noise or Instability:
Q: Can I use the AD5206 with a 3.3V microcontroller?
A: Yes, the AD5206 operates with supply voltages as low as 2.7V, making it compatible with 3.3V systems.
Q: How do I reset the wiper positions to default?
A: The AD5206 does not have a hardware reset pin. You must explicitly set the wiper positions via SPI after power-up.
Q: Can I use all six channels simultaneously?
A: Yes, all six potentiometer channels can be controlled independently and used simultaneously in your circuit.
Q: Is the AD5206 non-volatile?
A: No, the AD5206 is a volatile device, meaning the wiper positions are lost when power is removed. You must reinitialize the positions after each power cycle.