23 Inter-Integrated Circuit (I2C)

The Inter-Integrated Circuit (I2C) module is a serial interface useful for communicating with other peripheral or microcontroller (MCU) devices. The external peripheral devices may be serial EEPROMs, display drivers, Analog-to-Digital Converters (ADC) and so on.

The I2C module can operate as any one of the following in the I2C system:

  • Client Device
  • Host Device in a Single Host System (Client May Be Active)
  • Host or Client Device in a Multi-Host System (Bus Collision Detection and Arbitration are Available)

Key features of the I2C module include the following:

  • Independent Host and Client Logic
  • Supports 100 kHz, 400 kHz and 1MHz Bus Specifications
  • 7-bit and 10-bit Device Addresses.
  • Client Mode Can be Configured for:
    • Two unique addresses
    • Range of address
    • General call address
    • Address bit masking
  • Automatic Clock Stretching Provides Delays for the Processor to Respond to a Client Data Request
  • Multi-Host Support Which Prevents Message Losses in Arbitration
  • Smart Mode for Minimal User Interaction and Simpler Application Code
  • Supports Data Hold Time for SMBus (300 nS or 150 nS) in Client Mode
  • Supports SMBus v2.0 and v3.0 Input Voltage Levels.
  • Supports the Intelligent Platform Management Interface (IPMI) Standard
  • System Management Bus (SMBus) and Power Management Bus (PMBus) Support:
    • Packet Error Checking (PEC) using CRC-8 calculator
    • Clock low timeout, Bus idle timeout and cumulative timeout
    • Frame error detection