MCP3004/3008
TABLE 5-1:
CONFIGURE BITS FOR THE
MCP3004
5.0
SERIAL COMMUNICATION
Communication with the MCP3004/3008 devices is
accomplished using a standard SPI-compatible serial
interface. Initiating communication with either device is
done by bringing the CS line low (see Figure 5-1). If the
device was powered up with the CS pin low, it must be
brought high and back low to initiate communication.
The first clock received with CS low and DIN high will
constitute a start bit. The SGL/DIFF bit follows the start
bit and will determine if the conversion will be done
using single-ended or differential input mode. The next
three bits (D0, D1 and D2) are used to select the input
channel configuration. Table 5-1 and Table 5-2 show
the configuration bits for the MCP3004 and MCP3008,
respectively. The device will begin to sample the ana-
log input on the fourth rising edge of the clock after the
start bit has been received. The sample period will end
on the falling edge of the fifth clock following the start
bit.
Control Bit
Selections
Input
Channel
Configuration Selection
Single/
D2* D1 D0
Diff
1
1
1
1
0
X
X
X
X
X
0
0
1
1
0
0
1
0
1
0
single-ended
single-ended
single-ended
single-ended
differential
CH0
CH1
CH2
CH3
CH0 = IN+
CH1 = IN-
0
0
0
X
X
X
0
1
1
1
0
1
differential
differential
differential
CH0 = IN-
CH1 = IN+
CH2 = IN+
CH3 = IN-
CH2 = IN-
CH3 = IN+
Once the D0 bit is input, one more clock is required to
complete the sample and hold period (DIN is a “don’t
care” for this clock). On the falling edge of the next
clock, the device will output a low null bit. The next 10
clocks will output the result of the conversion with MSB
first, as shown in Figure 5-1. Data is always output from
the device on the falling edge of the clock. If all 10 data
bits have been transmitted and the device continues to
receive clocks while the CS is held low, the device will
output the conversion result LSB first, as is shown in
Figure 5-2. If more clocks are provided to the device
while CS is still low (after the LSB first data has been
transmitted), the device will clock out zeros indefinitely.
* D2 is “don’t care” for MCP3004
TABLE 5-2:
CONFIGURE BITS FOR THE
MCP3008
Control Bit
Selections
Input
Channel
Configuration Selection
Single
D2 D1 D0
/Diff
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
single-ended
single-ended
single-ended
single-ended
single-ended
single-ended
single-ended
single-ended
differential
CH0
CH1
CH2
CH3
CH4
CH5
CH6
CH7
If necessary, it is possible to bring CS low and clock in
leading zeros on the DIN line before the start bit. This is
often done when dealing with microcontroller-based
SPI ports that must send 8 bits at a time. Refer to
Section 6.1, “Using the MCP3004/3008 with Microcon-
troller (MCU) SPI Ports”, for more details on using the
MCP3004/3008 devices with hardware SPI ports.
CH0 = IN+
CH1 = IN-
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
differential
differential
differential
differential
differential
differential
differential
CH0 = IN-
CH1 = IN+
CH2 = IN+
CH3 = IN-
CH2 = IN-
CH3 = IN+
CH4 = IN+
CH5 = IN-
CH4 = IN-
CH5 = IN+
CH6 = IN+
CH7 = IN-
CH6 = IN-
CH7 = IN+
© 2007 Microchip Technology Inc.
DS21295C-page 15