Il design del bus I2C è tale che -
- quando si verifica un fronte di discesa su SCL, ciò può causare un dispositivo slave a far valere immediatamente SDA, senza alcun ritardo minimo particolare;
- l'ordinamento relativo dei fronti di salita e di discesa è di fondamentale importanza.
A causa della differenza nella potenza del driver e nella capacità della linea, sarebbe teoricamente possibile che un dispositivo possa rispondere a un fronte di discesa un po 'lento su SCL guidando SDA così velocemente che un altro dispositivo vedrebbe cadere SDA per primo.
Potrebbe essere stato possibile definire più soglie logiche su SCL e specificare che affinché un fronte di discesa su SCL sia considerato come proveniente da un bordo su SDA, deve essere comunque superiore a 2/3 VDD quando viene rilevato il bordo su SDA, ma un dispositivo potrebbe non far valere SDA in risposta a un fronte di discesa su SCL fino a quando non è sceso al di sotto di 1/3 VDD, ma la specifica non è scritta in tali termini.
Invece, i dispositivi che vedono fronti di caduta quasi simultanei su SDA e SCL considerano generalmente il bordo su SCL come avvenuto per primo a meno che non sia sostanzialmente preceduto dal bordo su SDA. Alcune implementazioni I2C gestiscono ciò sincronizzando SCL e SDA con un clock esterno e richiedendo che un fronte discendente di SDA sia osservato due periodi prima di quello di SCL per essere considerato come il primo. Se la velocità delle operazioni su SCL e SDA è troppo elevata rispetto al clock di sincronizzazione, i dispositivi possono percepire sequenze arbitrarie di segnali alti e bassi su SCL e SDA; se una di quelle sequenze sembra indirizzare il dispositivo lento, potrebbe reagire di conseguenza, schiacciando qualsiasi altra comunicazione che potrebbe essere in corso.
Non vi è alcun motivo particolare per cui i dispositivi su un bus I2C debbano fare affidamento sulla sincronizzazione con un clock di sistema (essere in grado di rilevare due soglie discrete su SCL sarebbe meglio), ma il fatto è che alcuni dispositivi funzionano effettivamente in questo modo. Si noti che anche se un dispositivo limitato a basse velocità internamente volesse coesistere con un bus veloce, probabilmente dovrebbe impiegare almeno un clock che si allunga ogni volta che succede qualcosa a cui potrebbe essere interessato.
Ciò farebbe sì che alcune comunicazioni avvengano più lentamente di quanto potrebbero altrimenti, ma il degrado della velocità probabilmente non sarebbe così grave come richiesto dal design sincronizzato dell'orologio (la quantità effettiva con cui il dispositivo lento allunga gli orologi probabilmente non lo farebbe essere così cattivo come la quantità di cui l'orologio deve essere rallentato per evitare guasti dello scenario peggiore nelle unità di orologio sincronizzato).