MCP3008 8-Channel 10-bit ADC IC
MCP3008 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 and Specifications
- 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
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.
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:
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)