Die I2C-Spezifikation stellt eine Reihe von Anforderungen an Busteilnehmer. Die Wichtigsten sind:
- Sowohl SDA als auch SCL müssen als Open-Drain-Schaltung ausgelegt sein und dürfen den Bus nicht aktiv gegen High treiben.
- Für die meisten I2C-Busse gilt, daß sich die Logigpegel an der Versorgungsspannung des Busses orientieren, d.h. 1,1 V wird an einem mit 5 V versorgten Bus als low, in einem mit 1,2 V versorgten Bus als high interpretiert.
- SCL und DAS müssen über Schmitt Trigger inputs eingelesen werden d.h. mit einer gewissen hysterese.
- Spikes müssen bis zu einem gewissen Grad herausgefiltert werden (bei Übertragungen mit Fullspeed).
- Setup und Hold-Zeiten: diese beinhalten Maxima für die Taktrate von 100 bzw. 400 kHz.
Die meisten mit I2C ausgestatteten Standard-ICs erfüllen diese Anforderungen. Problematisch in dieser Hinsicht sind hingegen Software-Implementierungen. Solange die Abweichungen in einem geschlossenen System keine Probleme verursachen, stellt dies kein ernstes Hindernis dar, ist jedoch bei der eventuellen Fehlersuche zu beachten.




