| 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 discusses the
features and functions of the stand-alone I2C module in Slave mode. The
stand-alone I2C module should 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
Registers(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
registers is only available when in 7-bit Addressing mode. When in 10-bit
Addressing mode, only two dedicated Address registers are available.
- 2.Direct Memory Access (DMA) is not
available on all devices. Refer to the device data sheet to determine if the DMA
is available.