MCP3204/3208 Module

This module contains the driver for Microchip MCP3204/3208 analog to digital converter with SPI serial interface (datasheet).

Example:

from microchip.mcp3208 import MCP3208

...

mcp = mcp3208.MCP3208(SPI0, D17)
value_0 = mcp.get_raw_data(True, 0)
value_1 = mcp.get_raw_data(False, 2)

MCP3208 class

class MCP3208(spidrv, cs, clk = 400000)

Creates an instance of the MCP3208 class. This class allows the control of both MCP3204 and MCP3208 devices.

Parameters:
  • spidrv – SPI Bus used ‘(SPI0, ...)’
  • cs – Chip select pin
  • clk – Clock speed, default 400 kHz
get_raw_data(single, channel)

Return the conversion result as an integer between 0 and 4095 (12 bit).

Input mode and channel are selected by single and channel parameters according to the following table.

single channel Input Configuration Channel Selection
True 0 single-ended CH0
True 1 single-ended CH1
True 2 single-ended CH2
True 3 single-ended CH3
True 4* single-ended CH4
True 5* single-ended CH5
True 6* single-ended CH6
True 7* single-ended CH7
False 0 differential CH0 = IN+ CH1 = IN-
False 1 differential CH0 = IN- CH1 = IN+
False 2 differential CH2 = IN+ CH3 = IN-
False 3 differential CH2 = IN- CH3 = IN+
False 4* differential CH4 = IN+ CH5 = IN-
False 5* differential CH4 = IN- CH5 = IN+
False 6* differential CH6 = IN+ CH7 = IN-
False 7* differential CH6 = IN- CH7 = IN+

Note

channel values marked with * are available for the MCP3208 only.

The digital output code is determined by the reference voltage Vref and the analog input voltage Vin:

Digital output code = 4096 * Vin / Vref