Digital System Design - Final Project Website

About I2C - brief introduction to I2C

 

I2C, stands for Inter-Integrated CircuitThere are two kinds of nodes in I2C systems: master node and slave node, use  two bidirectional open-drain lines to connect nodes, they are Serial Data (SDA) and Serial Clock (SCL).

The reference design is a bus with a clock (SCL) and data (SDA) lines with 7-bit addressing. The bus has two roles for nodes -  master and slave:

  • Master node — node that issues the clock and addresses slaves
  • Slave node — node that receives the clock line and address.

There are four potential modes of operation for a given bus device, although most devices only use a single role and its two modes:

  • master transmit — master node is sending data to a slave
  • master receive — master node is receiving data from a slave
  • slave transmit — slave node is sending data to a master
  • slave receive — slave node is receiving data from the master

Below is an example:

Data transfer is initiated with the START bit (S) when SDA is pulled low while SCL stays high. Then, SDA sets the transferred bit while SCL is low (blue) and the data is sampled (received) when SCL rises (green). When the transfer is complete, a STOP bit (P) is sent by releasing the data line to allow it to be pulled up while SCL is constantly high.

For more information checks our reference of I2C:

to Wikipedia.org to see more details of I2C.

to opencores.org to see core overview, source code, FAQ etc, about I2C.

to an instruction of I2C in Chinese