Microchip MCP3002-I/SN 10-Bit Dual-Channel ADC: Datasheet, Pinout, and Arduino Interface Guide

Release date:2026-01-15 Number of clicks:94

Microchip MCP3002-I/SN 10-Bit Dual-Channel ADC: Datasheet, Pinout, and Arduino Interface Guide

In the world of electronics, bridging the gap between the analog and digital realms is a fundamental task, and the Microchip MCP3002-I/SN is a classic integrated circuit designed to do just that. This 10-bit, dual-channel Analog-to-Digital Converter (ADC) provides a simple and effective solution for adding sensor reading capabilities to digital systems like microcontrollers. This article provides a detailed overview of its datasheet, pinout, and how to interface it with a popular Arduino board.

Datasheet Overview and Key Specifications

The MCP3002 is a successive approximation register (SAR) architecture ADC. Its primary function is to sample an analog voltage and convert it into a corresponding 10-bit digital number (1024 possible values). Key specifications from its datasheet include:

Resolution: 10-bit

Input Channels: 2 single-ended or 1 pseudo-differential

Supply Voltage (VDD): 2.7V - 5.5V (Perfect for 3.3V and 5V systems like Arduino)

Maximum Sampling Rate: 200 kSPS (thousand samples per second) at 5V

Communication Interface: SPI (Serial Peripheral Interface)

Package: 8-pin SOIC (SN)

Its wide operating voltage range and SPI interface make it exceptionally easy to use with a wide variety of microcontrollers.

Pinout Configuration

Understanding the pinout is crucial for correct wiring. The MCP3002-I/SN comes in an 8-pin SOIC package.

1. CS/SHDN (Chip Select/Shutdown): Active-low pin used to enable the device and initiate communication.

2. CH0 (Channel 0): First analog input channel.

3. CH1 (Channel 1): Second analog input channel.

4. VSS (Ground): System ground (0V reference).

5. Din (Serial Data In): Receives data and control bits from the microcontroller (Master Out Slave In - MOSI).

6. Dout (Serial Data Out): Transmits the conversion result back to the microcontroller (Master In Slave Out - MISO).

7. CLK (Serial Clock): Receives the clock signal from the microcontroller to synchronize data transfer.

8. VDD/VREF (Power/Reference Voltage): This dual-function pin provides power to the chip and also serves as the voltage reference (VREF) for the conversion. The maximum analog input voltage is equal to VREF.

Arduino Interface Guide

Interfacing the MCP3002 with an Arduino is straightforward thanks to the built-in SPI library. The following steps outline the process.

1. Hardware Connections:

First, make the following connections between the Arduino Uno and the MCP3002:

Arduino 5V → MCP3002 VDD/VREF (Pin 8)

Arduino GND → MCP3002 VSS (Pin 4)

Arduino D13 (SCK) → MCP3002 CLK (Pin 7)

Arduino D12 (MISO) → MCP3002 Dout (Pin 6)

Arduino D11 (MOSI) → MCP3002 Din (Pin 5)

Arduino D10 (SS) → MCP3002 CS/SHDN (Pin 1)

Connect a potentiometer or a sensor output (e.g., from an LDR or thermistor circuit) to CH0 (Pin 2).

2. Software (Arduino Sketch):

The code uses the SPI library to communicate with the ADC. The core function involves sending a configuration byte to specify the channel and reading the 10-bit result.

```cpp

include

const int CS_PIN = 10; // Chip Select pin

void setup() {

Serial.begin(9600);

SPI.begin();

pinMode(CS_PIN, OUTPUT);

digitalWrite(CS_PIN, HIGH); // Deselect the chip initially

}

void loop() {

int adcValue = readADC(0); // Read channel 0

Serial.print("Sensor Value: ");

Serial.println(adcValue);

delay(500);

}

int readADC(byte channel) {

// 1. Take the CS pin low to select the chip

digitalWrite(CS_PIN, LOW);

// 2. Send Start bit (1), Single/Diff bit (1 for single-ended), and D2 (MSB of channel select)

byte command = 0b11000000; // Start bit + Single-Ended mode

command |= (channel << 4); // Set the channel bit (D2)

// 3. Send command and read response

byte MSB = SPI.transfer(command);

byte LSB = SPI.transfer(0x00); // Send dummy bytes to read the rest

// 4. Take the CS pin high to release the chip

digitalWrite(CS_PIN, HIGH);

// 5. Process the returned data (10-bit value)

int result = (MSB & 0x03) << 8; // Mask MSB and shift left 8 bits

result |= LSB; // Combine with LSB

return result;

}

```

ICGOOODFIND

The MCP3002-I/SN stands out as a highly reliable and versatile ADC for countless projects. Its key strengths are exceptional ease of use with any microcontroller featuring an SPI port, low power consumption, and a cost-effective price point. For developers and hobbyists needing to digitize analog signals from sensors—be it for temperature, light, or potentiometer readings—the MCP3002 offers a perfect blend of performance and simplicity, making it an enduringly popular choice in the maker community and professional prototypes alike.

Keywords: MCP3002, ADC, SPI, Arduino, Analog-to-Digital Converter

Home
TELEPHONE CONSULTATION
Whatsapp
Global Manufacturers Directory