3. Protocole de communication I²C.
La communication sur le bus I²C ne peut se faire qu'entre 2 abonnés.
Lorsqu'un abonné prend le contrôle du bus, il devient le maître de la communication. Il génère le signal d'horloge SCL et communique avec un esclave. Selon le sens de la communication, il sera l'émetteur ou le récepteur.
La condition de départ
Un abonné prend le contrôle du bus I²C en émettant une condition de départ :
Niveau haut sur SCL
Front descendant sur SDA
Cet abonné devient le maître.
Transmission de l'adresse
Après avoir pris le contrôle, le maître transmet un octet contenant l'adresse de l'esclave (sur 7 bits) ainsi que l'opération effectuée (écriture ou lecture) :
Lecture (Niveau Logique = 1, NL 1), Écriture (NL 0)
La transmission d'un bit se fait lorsque le signal SCL est au niveau haut :
Lorsque l'esclave a détecté son adresse, il émet un bit d'acquittement (ACK) au niveau logique bas.
Fin de la communication
Pour terminer la communication, le maître émet une condition d'arrêt.
Niveau haut sur SCL
Front montant sur SDA
Tous les abonnés sont alors déconnectés du bus. SDA et SCL sont au niveau haut.