Vous êtes sur la page 1sur 2

Support de cours

Bus de données I2C et Interfaçage.

 La condition Start est définie par la transition de la ligne SDA du niveau haut au
niveau bas, SCL étant au niveau haut. C'est bien sûr le maître qui force la ligne SDA
au niveau bas :
SCL

SDA

 La donnée présente sur la ligne SDA doit être stable sur l'intervalle de temps où SCL
est au niveau haut. C'est l'émetteur qui agit sur la ligne SDA, et c'est évidemment le
maître qui génère le signal d'horloge SCL.

SCL
1
SDA
0

 Bit Acknowledge, Le protocole est le même que pour la transmission d'un bit de
donnée. 2 cas:
- bit Acknowledge (master to slave) : Le bit Acknowledge est généré par le maître (le maître
force la ligne SDA au niveau 0).
- bit Acknowledge (slave to master) : Le bit Acknowledge est généré par un esclave (l'esclave
force la ligne SDA au niveau 0).
 Bit Not Acknowledge : Le bit Not Acknowledge est toujours généré par le maître (le
maître ramène la ligne SDA au niveau 1).

SCL SCL
1
SDA SDA
0
 La condition Stop est définie par la transition de la ligne SDA du niveau bas au
niveau haut, SCL étant au niveau haut. C'est bien sûr le maître qui agit sur la ligne
SDA :

SCL

SDA
Exemple
L'adresse I2C (7 bits) du DS1307 est : 1 1 0 1 0 0 0 (adresse fixée par le constructeur, c’est un
adresse non modifiable).

Le registre d'adresse 0x04 du DS1307 contient la date (Datasheet du DS1307). Pour régler le
calendrier au 27 du mois, il faut écrire la donnée 0x27 (codage BCD) dans le registre
d'adresse 0x04 du DS1307.
Esclave vers maitre

S 1101000 0 A 00000100 A 00100111 A P

Start R/W Stop


1) Pour initier la communication, le maître crée une condition Start
2) Le maître envoie l'adresse de l'esclave (1101000) suivi du bit 0 (bit Write)
3) L'esclave répond (accusé de réception : bit Acknowledge)
4) Le maître envoie l'adresse du registre (0x04) à écrire
5) L'esclave répond (accusé de réception : bit Acknowledge)
6) Le maître envoie la donnée (0x27) à écrire
7) L'esclave écrit la donnée puis envoie un accusé de réception (bit Acknowledge)
8) Le maître termine le dialogue avec une condition Stop
Le bus I2C est maintenant libre (SCL = 1, SDA = 1 : niveaux de repos).

Interfaçage :

Vous aimerez peut-être aussi