Skip to datasheet
8-channel 10-bit SPI ADC

MCP3008 Working Principle

Learn how MCP3008 works with an illustrated explanation and practical readings.

Package view

MCP3008 at a glance

Follow the labeled connections and functional stages

MCP3008 working principle: illustrated functional stages, basic circuit and connections
Select the diagram to read it at full resolution.

How it works

3 stages · Explore one step at a time

Step 1 / 3

Choose the input

Send a start bit, SGL/DIFF and D2–D0 while chip select is LOW. Single-ended channels use ground; pseudo-differential commands select adjacent pairs.

Step 2 / 3

Acquire and convert

The source charges the internal hold capacitor during the 1.5-clock acquisition window. Ten successive-approximation steps determine the result.

Step 3 / 3

Read the serial word

Sample DOUT on rising clock edges. Discard the null bit, keep the ten result bits and return chip select HIGH before the next conversion.

Choose a channel. Build the SPI message.

Explore 10-bit conversion and single-ended or pseudo-differential inputs.

Ideal code + command

Channel selection is part of every conversion command. Differential results remain unsigned; a negative difference clips to zero.

IDEAL DECIMAL CODE512
0x2001000000000
CONTROLLER → DIN · Pin 1101 80 00Three transmit bytes · hexadecimal
DOUT → CONTROLLER · Pin 12XX X2 00X = discard · retain 10 result bits
IDEAL STEP3.2227 mVVREF / 1024

CS pin 10 stays LOW for the transaction. Use SCLK pin 13, mode 0 or 3. Read ((RX[1] & 3) << 8) | RX[2], then raise CS. Ideal code calculator and SPI command builder. It rounds to the nearest nominal code, clamps to 0–1023 and excludes timing, acquisition error and noise. Pseudo-differential IN− is limited to ±100 mV. Read the physical device using its specified SPI timing.

Component view