I2C Master/Slave Controller

Overview

The I2C-MS core is a controller for the Inter-Integrated Circuit (I2C) bus. The highly configurable core can implement an I2C bus master, slave, or a combined master and slave, and it communicates with the host via an APB, AHB, or Wishbone slave interface. 

The core supports all variations and configurations of I2C networks. It can be used in single- or multiple-master networks, running in any of bus standard-defined speeds, employing 7-bit I2C slave addressing. Supporting clock stretching, it allows communication between slow slave and fast master. 

Designed for ease of use and operation, the core allows choosing between master and slave operation, and setting up I2C transfers at runtime with few register accesses. The core reports its internal status and the I2C bus status via its registers but also with via a rich set of interrupts.  

The I2C-MS core is rigorously verified, and silicon-proven. It is available in synthesizable RTL and FPGA netlist forms, and includes everything required for successful implementation, including a sophisticated self-checking testbench, simulation scripts, test vectors, and expected results, synthesis scripts and comprehensive user documentation.

Key Features

  • I2C Bus Protocol Controller
    • Compliant to Philips I2C standard
    • All I2C bus speeds:
      • Standard-mode (Sm): up to 100 kbit/s, bidirectional  
      • Fast-mode (Fm): up to 400 kbit/s, bidirectional  
      • Fast-mode Plus (Fm+): up to 1 Mbit/s, bidirectional  
      • High-speed mode (Hs-mode): up to 3.4 Mbit/s, bidirectional  
      • Ultra Fast-mode (UFm): up to 5 Mbit/s, unidirectional
    • 7-bit slave addressing
    • Supports single or multi-master buses
    • Clock-Stretching to allow fast-master slow-slave communication 
  • Configuration Options
    • Operation mode: Master, Slave, or Master/Slave
    • Host Interface: APB, AHB, or Wishbone Slave 
    • Read and Write Data FIFOs depth
    • Maximum number of I2C transfers without host intervention 
  • Run-Time Options
    •  I2C Bus Speed and Clock Frequency
    • Master or slave operation (for I2C master/slave core)
    • I2C slave addressing mode (for I2C master)

Block Diagram

I2C Master/Slave Controller Block Diagram

Technical Specifications

×
Semiconductor IP