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

Philips SemiconductorsInformations[1]

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

Philips SemiconductorsInformations[2]

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)

Philips SemiconductorsInformations[3]

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.

Philips SemiconductorsInformations[4]

Fin de la communication

Philips SemiconductorsInformations[5]

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.