| Author: Christopher Best, Microchip Technology
Inc. |
Inter-Integrated Circuit, more commonly referred to as I2C, is a
synchronous, two-wire, bidirectional serial communications bus. The I2C
module can be used to communicate with other I2C compatible EEPROMs, display
drivers, sensors, or other microcontroller devices. This technical brief will discuss
the features and functions of the stand-alone I2C module in Master mode. The
stand-alone I2C module will not be confused with the traditional Master
Synchronous Serial Port (MSSP), which contained both I2C and Serial
Peripheral Interface (SPI) functions.
I2C Module Modes and
Features
The I2C module provides the following operational modes and features:
- Master Mode
- Slave Mode with Byte NACKing
- Multi-Master Mode
- Dedicated Receive and Transmit
Buffers
- Up to Four Dedicated Slave Address
Buffers(1)
- 7-Bit and 10-Bit Addressing with
Masking
- General Call Addressing
- Interrupts
- Bus Collision Detection
- Bus Time-Out Detection with
Programmable Sources
- SDA Hold Time Selection
- Programmable Bus-Free Time
Selection
- I2C, SMBus 2.0, and SMBus
3.0 Input Level Selection
- Direct Memory Access (DMA)
Support(2)
Note:
- 1.Support for four dedicated slave
buffers is only available when in 7-bit Addressing mode. When in 10-bit
Addressing mode, only two dedicated address buffers are available.
- 2.Direct Memory Access (DMA) is not available on all devices. Please refer to the
device data sheet to determine if the DMA is available.