Vous êtes sur la page 1sur 3

Chapitre 5 

: PROTOCOLE I2C
Permet la communication entre différentes technologies

Peut marcher sur 5V et 3.3V

SDA le port qui transmet des données

Abonné= tt élément du bus

Maitre tout abonné qui prend l’initiative de transmettre des données

Le maitre applique l’horloge sur SCL

Esclave adressé par un maitre

Adresse= numéro attribué à un esclave

CABLAGE

Les lignes SCL et SDA sont à VDD si personne ne parle.

Pour mettre 1 sur SCL on applique une résistance infinie entre l’abonné 1 et SCL, la résistance Rp
infiniment petit devant l’autre, on aura VDD à peu près égale à SCL. Donc la ligne est à 1.

Pour mettre 0 on force SCL à la masse.

Lecture
A Adresse Consigne B
e
Écriture

Adresse à Consigne à
7 bits 8 bits

Initialement scl et sda sont à 1.

Pour envoyer des données, le maitre met SDA à 0 avant SCL. Ainsi on sait que y’a quelqu’un qui veut
parler. En même temps, l’esclave ne fait rien. C’est le start.

Maintenant tt le monde attend l’adresse

Le maitre change SDA si nécessaire pendant l’état bas de SCL et est stable pendant l’état haut de SCL.

On envoie les 7 bits d’adresse. Et le maitre précise si on est en lecture ou en écriture en mettant
respectivement R/W à 1 ou à 0.

Apres ca l’esclave fait un acquittement pour montrer qu’il a reçu l’info.

Ensuite on l’envoi de l’info par le maitre en écriture ou par l’esclave en lecture.


Pour la lecture et l’écriture, l’esclave ne réagit pas sur SCL.

Cependant pour l’état d’attente, l’esclave force SCL à 0 le temps necessaire pour faire le traitement
avant d’envoyer l’info au maitre ou de recevoir l’info via le maitre.

Quand on force SCL à 0, la ligne est bloquée.

Condition de stop

SCL passe à 1 avant SDA.

ARBITRAGE ENTRE LES MAITRES

Si deux maitres tentent de démarrer un échange simultanément, le premier qui dit 1 sur SDA a
perdu.

Car qd on met la ligne à la masse, il est tjrs à 0 meme si un autre le met à 1, c’est le 0 qui l’emporte.

Quand toute la ligne est à 1 on peut supposer qu’elle est libre.

L’esclave n’a qu’une seule information à donner.

On veut réaliser un programme qui lorsqu’on passe devant une maison détecte notre présence et
allume la lampe

Matériels

Detecteur de mvt, lampe, cablerie, microcontroleur, transformateur 230/5V


Const device sert à présicer le module de cubloc utilisé

‘’Do … loop’’ nous permet de créer une boucle.

‘’Input numéroport’’ pour declarer un port d’entrée

‘’Output numéroport’’ pour declarer un port de sortie

Delay pour la temporisation

‘’in(numéroport)=valeur’’ pour affecter une valeur à une entrée

‘’Out numéroport,valeur’’ pour affecter une valeur à une sortie

Pour commenter on met une apostrophe.

La programmation de cette application par le basic n’est pas la meilleure solution car si on
avait plusieurs ligne de code il pouvait y avoir des confusions.

Avec le ladder c’est plus intéressent du fait que y’a une execution simultanée de toutes les
lignes de code.

Pour activer le ladder, on le précise au basic en mettant

‘’set ladder on’’

Et on précise sur le basic quel port utiliser sur le ladder avec

‘’usepin numéroport, in or out , nom(exemple detmvt)’’

F8 permet une automaintien

Pour nommer notre lampe, on utilise ‘’setout lampe’’

Vous aimerez peut-être aussi