📈I2C Protocol

Notes on I2C prorocol

Introduction

  • Multi master multi slave communication , 128 devices maximum because of the data frame having a fixed bits for addresses

  • Maximum of 3mbps , synchronous data transfer protocol

  • has start and stop conditions , and a data frame format

configuration / connection

  • Multi master multi slave

  • SDA - Data line , SCL - Serial clock

  • Open drain / open collector configuration / pull up pull down is required

  • In open drain (above image) a pull up resistor is used for idle state and pulled low when required

  • uses 4.7kohm resisitor typically

Details

Communication:

  • start condition : SDA is pulled low keeping scl (clk) high (idle)

  • Master sends 7 bit (0-127) slave address first with read/write and waits for ACK/NACK from slave

  • slave pulls sda low to indicate ACK

  • Master sends or recieves a data frame 8 bit waits for ack or nack

  • slave ACK once recieved

  • Master stop condition is issued: SDA is high before SCL

Arbitration / handling multiple slaves from collision

  • In Multi master configuration SDA is monitored and if its low then devices wont send data

Usage and limitations

  • As the name suggests its a very low speed communication meant for chip to chip in a pcb

  • used in sensors , eeprom etc

  • 400kbps in the fast mode

References:

Last updated