Introduction

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.