I2C Standard Protokoll

Der I2C Bus besteht nur aus zwei Leitungen und arbeitet nach dem Master Slave Prinzip. Dabei wird eine Leitung für den Takt und eine für die Daten verwendet. Der Bus arbeitet meistens mit 3.3 V oder 5 V Pegel. Generell werden Pullup-Widerstände benötigt. Als Richtwert für den Pullup-Widerstand kann man 1 mA annehmen. Was 3.3 kΩ für 3.3 V entspricht und 5.1 kΩ für 5 V. Die Risetime muss kleiner als 1 us sein und die Falltime kleiner als 300 ns um die Spezifikation zu erfüllen. Der Maximale Strome durch die Pullup-Widerstände darf nicht höher als 3 mA sein. Die Länge der Leitungen sollte maximal 300 mm betragen. Unabhängig von der Übertragungsrichtung wird immer nur von Master einen Takt generiert.

Die Übertragung

Start Signal

Als erstes wird immer ein Start Signal generiert. Dafür wird die SDA Leitung auf Low gezogen während die SDA Leitung mindestens für 4 us High bleibt. Im Bild grün markiert.

Adresse übertragen

Nach dem Startsignal fängt die Datenübertragung an. Dabei werden zuerst die 7 Bit Adresse übermittelt. Dabei gilt MSB First und jedes Bit wird bei einer steigenden Flanke der SCL Leitung ausgewertet.

R/W Bit senden

Das achte Bit entscheidet ob das folgende Byte Daten von oder für den Master ist.

  • Ist das Bit Low, werden Daten vom Master geschrieben.
  • Ist das Bit Hight, werden Daten vom Master gelesen.

ACK / NACK Bit

Das Acknowledge (ACK) Bit wird vom Empfänger auf Low gezogen, wenn die Daten Empfangen wurden. Wird die SDA Leitung auf High gelassen, wird das als Not Acknowledge (NACK) interpretiert. Ist das der Fall, werden die Daten erneut gesendet. Das ACK Bit ist im Bild violett markiert.

  • Ist das Bit Low, wird damit ein ACK signalisiert.
  • Ist das Bit High, wird damit ein NACK signalisiert.

Daten Übertragen

Das Übertagen funktioniert gleich wie das übertragen der Adresse und R/W Bit. Mit dem unterschied dass einfach 8 Daten Bits gesendet werden.

Stop Signal

Das Stop Signal funktioniert wie das Start Signal nur umgekehrt. Die SDA Leitung wird auf High gezogen während die SCL Leitung bereits auf High ist. Die SCL Leitung muss mindestens 4 us auf High verweilen.

Einzelnachweise

Das «user manual» UM10204 von NXP Semiconductos beschreibt jedes Detail. Ich Empfehle das Kapitel 3. für Generele Infos zum Bus und Kapitel 6. für die Elektrischen Eigenschaften.

NXP Semiconductors: www.nxp.com
User Manual: UM10204