Skip to main content

MCP3008 8-Channel 10-bit ADC IC

[Click the image to enlarge it]

Pin Configuration

Pin Number

Pin Name

Description

1,2,3,4,5,6,7,8

Analog Input Channels

These are the 8 Input pins, to which the analog voltage which has to be measured is provided.

9

Digital Ground

Connected to the Ground of the circuit

10

Chip Select / Shutdown(CS`/SHDN)

This pin is connected to GPIO pin or MCU for turning on or off the IC

11

Serial Data In (DIN)

Used for SPI communication

12

Serial Data Out (DOUT)

Used for SPI communication

13

Serial Clock (CLK)

Used to provide clock signal for SPI communication

14

Analog Ground

Connected to Ground of the reference voltage

15

Reference Voltage (VREF)

Connected to reference voltage for ADC Conversion

 

Features

  • 8-Channel 10-bit ADC IC
  • Communication protocol: Serial SPI interface
  • Operating voltage 2.7V to 5V
  • ADC method: Successive Approximation (SAR)
  • Sampling Rate: 200ksps and 75ksps for 5V and 2.7V resp.
  • Available in 16-pin PDIP, and SOIC packages

 

Note: Complete Technical Details can be found at the MCP3008 datasheet provided at the bottom of the article.

 

MCP3008 Equivalent

PCF8591

 

Alternatives ADC ICs

ADC0808, ADC0804, ADS11115

 

Where to use MCP3008 IC

The MCP3008 is an 8-Channel 10-bit ADC IC, so it can measure 8 different analog voltage with a resolution of 10-bit. It measures the value of analog voltage from 0-1023 and sends the value to a microcontroller or microprocessor through SPI communication. It can operate on both 3.3V and 5V and hence it can be used with 5V microcontroller as well as with 3.3V systems like the Raspberry Pi. It uses the SAR method to convert the Analog voltage to digital value; it might not be the fastest and precise ADC in the market but is the cheapest and easy to use one.

So if you are looking for an ADC IC with a resolution of 10-bit (0-1023) with 8-channels with a decent speed then this IC might be the right choice for you. It is very commonly used with Raspberry Pi since it does not have an ADC feature by default.

 

How to use a MCP3008 IC

MCP3008 is popular because of its user friendly nature and can be made to work with minimum number of components. A sample application circuit for MCP3008 is shown below.

MCP3008 Microcontroller Circuit Diagram

In this sample diagram I have set the operating voltage to be 5V, but it can be anywhere between 2.7V to 5V. The ADC works using the SAR method, so it requires a reference voltage to calculate the unknown voltage. This reference voltage should always be less than the operating voltage; normally it will be as same as the operating voltage. In our case I have tied the reference voltage to 5V along with Vcc pin.

The channel pin CH0 to CH7 can be used to feed in the analog voltage which has to be measured. The maximum voltage that can be measured with each is pin will be equal to the reference voltage. In our case it is 5V. Each pin measures the voltage with a resolution on 10-bit meaning the input voltage of 0-5V is converted to 0-1023 digital data. The formulae to convert this digital data back into voltage is:

ADC to Voltage Formula

In the above circuit diagram the system voltage is 5V and the resolution of ADC is 1024. Once the Analog voltage is measured by the IC, its value can be obtained by the microcontroller or microprocessor through SPI communication. To do this the CS, Din, Dout and Clock pin of the IC is connected to the microcontroller or microprocessors SPI pins. Then using SPI communication protocol we have to send the control bit data for selecting the channel number from which the ADC value has to be obtained and the IC will reply us back with the value. More details on how to do this can be found at page 19 in the datasheet given below.

If you are interfacing this IC with Arduino or Raspberry Pi then you do not have to worry about it a lot because Adafruit has provided a Adafruit MCP3008 Python Library which can be downloaded from the link given and used directly to work with all versions of Raspberry Pi.

 

Applications

  • Used with Raspberry Pi and other microprocessor development boards
  • Extended ADC modules
  • Data acquisition where multiple analog sensors are present
  • Multiple sensor interface projects
  • Battery pack monitoring

 

2D Model of MCP3008 (PDIP)

MCP3008 IC Dimensions



Download Datasheet PDF: