Microchip MCP42100-I/SL 100kΩ Dual Digital Potentiometer: Datasheet, Pinout, and SPI Interface Guide
Digital potentiometers (digipots) have become fundamental components in modern electronics, replacing mechanical potentiometers for automated, software-controlled adjustment of resistance and voltage. The Microchip MCP42100-I/SL is a prominent example, offering a compact, dual-channel, 8-bit (256-tap) solution in a narrow SOIC package. This guide provides a detailed overview of its datasheet, pin configuration, and how to interface it via SPI.
Datasheet Overview and Key Specifications
The MCP42100 is part of Microchip's MCP42XXX family of dual digital potentiometers. The "100" suffix denotes a nominal end-to-end resistance of 100kΩ per channel. Key specifications from the datasheet include:
Dual Potentiometers: Contains two independent, digitally controllable 100kΩ variable resistors.
Resolution: 8-bit, providing 256 wiper tap points per potentiometer.
Interface: Serial Peripheral Interface (SPI) for simple communication with microcontrollers like Arduino, PIC, and ARM.
Supply Voltage: 2.7V to 5.5V, making it suitable for both 3.3V and 5V systems.
Temperature Range: Industrial (-40°C to +85°C), indicated by the "-I" in the part number.
Non-Volatile Memory: This device does not feature non-volatile memory. The wiper position resets to mid-scale (128d / 80h) on power-up.
Package: 8-lead SOIC (150 mil), identified by the "/SL" suffix.
Pinout Configuration
Understanding the pinout is crucial for correct circuit design. The MCP42100-I/SL comes in an 8-pin SOIC package.
1. CS (Chip Select) / SHDN (Shutdown): Active-Low input. Used to select the device for SPI communication and to place it in a low-power shutdown mode.
2. SCK (Serial Clock): SPI clock input. Data is shifted in on the rising edge of this clock.
3. SI (Serial In) / SDI (Serial Data In): The MOSI (Master Out, Slave In) line for the SPI interface. Command and data bytes are serially input on this pin.
4. VSS: Ground reference (0V).
5. PBx (Terminal B): Terminal B of the potentiometer. Analogous to the fixed terminal of a mechanical pot.
6. PWx (Wiper): The wiper terminal of the potentiometer. Its position between PA and PB is set digitally.
7. PAx (Terminal A): Terminal A of the potentiometer. Analogous to the other fixed terminal.
8. VDD: Positive power supply input (2.7V to 5.5V).
Note: The 'x' in PAx, PWx, and PBx denotes the channel (0 or 1). For example, the first channel is PA0, PW0, PB1, and the second is PA1, PW1, PB1.
SPI Interface Guide
Interfacing the MCP42100 with a microcontroller is straightforward using the SPI protocol. The basic communication sequence involves toggling the CS pin and sending a 16-bit command/data word.
SPI Command Structure:
The 16-bit (2-byte) data packet consists of a command byte followed by a data byte.
Command Byte: `CCCC CPD1`
`CCCC`: 4-bit command (e.g., `0001` to write data to the potentiometer).
`P`: Potentiometer select bit (`0` for Potentiometer 0, `1` for Potentiometer 1).
`D1`: Don't care bit (can be set to `0`).
Data Byte: `DDDD DDDD`
This is the 8-bit value (0 to 255) that sets the wiper's position.

Basic Operation Steps:
1. Pull the CS pin LOW to enable the device.
2. The master (MCU) sends the command byte over the SI pin, synchronized by the SCK clock.
3. The master then sends the data byte.
4. Pull the CS pin HIGH to latch the command and update the wiper position.
Example Arduino Code Snippet:
This simple example assumes standard SPI pin connections (CS to pin 10, MOSI to pin 11, SCK to pin 13).
```cpp
include
const int CS_pin = 10;
void setup() {
pinMode(CS_pin, OUTPUT);
digitalWrite(CS_pin, HIGH);
SPI.begin();
}
void setWiper(byte channel, byte value) {
// Command format: 0001 CPD1
byte command = B00010000 | (channel << 1); // OR with channel bit
digitalWrite(CS_pin, LOW);
SPI.transfer(command);
SPI.transfer(value);
digitalWrite(CS_pin, HIGH);
}
void loop() {
setWiper(0, 128); // Set pot 0 to mid-scale (50%)
delay(1000);
setWiper(0, 255); // Set pot 0 to max (100%)
delay(1000);
}
```
ICGOOODFIND
The Microchip MCP42100-I/SL is an excellent choice for designers needing a compact, dual-channel digital potentiometer for analog signal adjustment, sensor calibration, or programmable gain amplification in 3.3V or 5V systems. Its straightforward SPI interface allows for easy integration with virtually any modern microcontroller, providing precise digital control over resistance values. The lack of non-volatile memory is its primary limitation for applications requiring remembered settings after a power cycle.
Keywords: Digital Potentiometer, SPI Interface, MCP42100, 100kΩ, SOIC Package
