Principe du I2C Page 2
2. Hardware
La configuration du bus I2C est très simple : toutes les sorties sont à
collecteur ouvert ou à drain ouvert, et la logique est positive.
Par cette configuration, les lignes sont au niveau logique 1 au repos, sans
qu’aucun circuit ne place cette ligne à 1.
Il est nécessaire de placer des résistances de rappel (pull-up) pour définir
le niveau haut.
Le nombre de composants qu'il est possible de relier est limité par la
charge capacitive des lignes SDA et SCL : 400 pF . Un composant a une
charge entre 10 et 20 pF.
Les données sont transmises en série à 100Kbits/s en mode standard et
jusqu'à 400Kbits/s en mode rapide.
Une impulsion d’horloge est générée à chaque fois qu’un bit est transféré.
Pas de court-cicuit possible sur SDA et SCL.
3. Protocole logiciel
Avec le compilateur CCS
On doit placer la directive #use au début du fichier
#use i2c(master, SDA = PIN_C4, SCL = PIN_C3)
Au repos
Les lignes SDA et SCL sont au niveau haut (1 logique).
Condition de départ
Un processeur (maître) signale son intention de parler par la condition
START:
Il place SDA = 0 pendant que SCL est au repos (=1)
Le bus est alors occupé: les autres ne peuvent plus parler.