Вы находитесь на странице: 1из 46

Centre de BTS

BTS SYSTEMES ELECTRONIQUES

RAPPORT DE PROJET FIN D’ETUDE

Maquette de bus I2C

Réalisé par :
- LIDARI AIMAD
- MAAKOUL OTHMANE
- OUAANABI ABDERRAHMAN

Encadré par :
Mr .ZIREG

Année scolaire : 2012/2013


Brevet Technicien Supérieur – Systèmes Electroniques Page 1
Centre de BTS

Sommaire…………………………………………………………..2
Introduction générale……………………………………………...4
I : bus I2C …………………………………………………………5
1) Généralité sur le bus I2C …………………………………………..……5
2) Les constitutions de la trame du bus ………………………………… 6
a) Start condition………………………………………………………6
b) Transmission d'un bit…………………………………………..……6
c) Stop condition……………………………………………………… 7
d) L’acquittement………………………………………………..…… 7
e) L'adresse et le bit R/W ………………………………………………7

II : analyse du projet…………………………………………….....8
1) Cahier de charge ………………………………………………………….8
2) Analyse fonctionnel ……………………………………………………….8
3) Schéma fonctionnel…………………………………………..…………..10
III : acquisitions et configurations………………………………10
1. PIC16f877 en mode I2C ……………………………………….. ………..10
2. Organisation et configuration …………………………………………….19
a) Maître du bus I2C (master) ………………………………………..19
a.1 - organigramme …………………………………….....…..19
a.2 - configuration des registres du PIC ………………...........20

b) Esclaves du bus I2C………………………………………………….22

Mesure de la température : esclave température………………………………22

- Etude du capteur LM355Z……………………………………..22


Brevet Technicien Supérieur – Systèmes Electroniques Page 2
Centre de BTS

- organigramme………………………………………….……23
- configuration des registres du PIC…………………………24

- Mesure de la fréquence : esclave fréquence…………………………………..25

- méthode de mesure de la fréquence………………………… ....25


- organigramme…………………………………………………...27
- configuration des registres du PIC…………………………….27

- Mesure de la luminosité : esclave luminosité…………………………………...29

- Etude du capteur…………………………………………….29
- organigramme ………………………………………………31
- configuration des registres du PIC ………………………...31

III : simulation de fonctionnement……………………………….32


1- Simulation du schéma principal ……………………………………….32
2- Algorithme de fonctionnement…………………………………………33
- Maître ………………………………………………………………..33
- Esclave de température …………………………………………… .33
- Esclave de fréquence ……………………………………………..…34
- Esclave de luminosité………………………………………………..34

3- Programmation ……………..…………………………………………35

IV: Réalisation…………………………………………………….35
1- Circuit imprimé……………………………………………………………….35
2- Réalisation………………………………………………………………….…35
V : Conclusion…………………………………………………….40
VII : Annexes……………………………………………………..41

Brevet Technicien Supérieur – Systèmes Electroniques Page 3


Centre de BTS

Introduction générale :
Dans le cadre de notre formation Brevet de Technicien Supérieur (BTS) , les étudiants de 2éme année
systèmes électroniques doivent réaliser un projet de fin d’étude.

Suite à notre programme d’étude, le bus I2C est un cour du microcontrôleur en électronique, consiste à
réaliser une communication entre les circuits électroniques (les Pics, les circuits programmables
FPGIA….),et nous on a le choix de faire comme projet une maquette didactique I2C qui a le but de faire des
Travaux Pratiques de ce cour pour les étudiants de notre spécialité.

Notre projet consiste à mesurer la fréquence, température et la luminosité à l’aide des capteurs liés aux
pics esclaves communiquent avec un pic maître qui affiche les valeurs des grandeurs dans un afficheur
LCD.

Le bus I2C est un bus de type série a été développé pour les communications de très courtes distances
(de l’ordre du mètre) et pour un débit maximum de 100kbits/sec. Une extension a par la suite été apportée,
appelée Fast I2C, permettant d’atteindre un débit de 400kbits/sec.

pour réaliser le bus I2C il suffit de pondre deux registres à décalage l’un en émission et l’autre en
réception de même fréquence d’horloge.

Ou peut se fait à l’aide des circuits programmable PLD, FPGA. De programme intelligent VHDL.

Brevet Technicien Supérieur – Systèmes Electroniques Page 4


Centre de BTS

I. bus I2C
Le bus I2C, dont le sigle signifie Inter Integrated Circuit ce qui donne IIC et par contraction I2C. Le
protocole est initialement proposé par Philips mais adopté de nos jours par des très nombreux
fabricants. C'est un bus de communication de type série.

1) Généralité sur le bus I 2C

Le bus I2C utilise deux lignes de signal permet à un certain nombre d'appareils d'échanger des
informations sous forme série avec un débit pouvant atteindre 100 Kbps ou 400 Kbps pour les versions
les plus récentes

Ceci étant précisé, quels points forts du bus I2C :

C'est un bus série bifilaire utilisant une ligne de données appelée SDA (Serial Data) et une ligne
d'horloge appelée SCL (Serial Clock).
Les données peuvent être échangées dans les deux sens sans restriction .
Le bus est multi-maître.
Le bus peut travailler à une vitesse maximum de 100 Kbps (ou 400 Kbps) le protocole permet de
ralentir automatiquement l'équipement le plus rapide pour s'adapter à la vitesse de l'élément le plus
lent lors d’un transfert
Un acquittement est généré pour chaque octet de donnée transférée
Chaque abonné dispose d'une adresse codée sur 7 bits. On peut donc connecter simultanément 128
abonnés d'adresses différentes sur le même bus, sous réserve de ne pas le surcharger électriquement.
Les niveaux électriques permettent l'utilisation de circuits en technologies CMOS, NMOS ou
TTL.

Figure1 : bus I2C


Brevet Technicien Supérieur – Systèmes Electroniques Page 5
Centre de BTS

C’est toujours le maître qui génère l’horloge quel que soit le sens du transfert des données. Chaque
ligne peut avoir deux états :

 ‘0’, qui correspond à l’´etat dominant,


 ‘1’, qui correspond à l’état récessif,

Figure2 : Positionnement du bus I2C par rapport `a Figure 3 : communication entre des circuits par bus I2C
d’autres bus et réseaux

2) Les constitutions de la trame du bus

 Start condition
Au début d’une séquence d’échange, le maitre génère un start condition(S) avant de commencer
l’échange de données. Au repos les lignes SCK et SDA sont à l’état haut(relâchées, pour générer un
start le maître place d’abord la ligne SDA à 0 en suite il place SCK à 0.

 Transmission d’un bit :


On place le bit à transmettre sur la ligne SDA ensuite on envoie une impulsion d'horloge sur la
ligne SCK. C'est cette impulsion qui informe le slave qu'il doit lire la donnée sur SDA .

Brevet Technicien Supérieur – Systèmes Electroniques Page 6


Centre de BTS

 Stop condition :
A la fin d'une séquence d'échange, le master génère un stop condition (P) après lequel le bus est de
nouveau libre. Pour cela, à partir de la situation SDA=0, SCK=0, le master commence par placer
SCK à 1 et place ensuite SDA à 1.

 L’acquittement :
L’acquittement est l'accusé de réception. Il est placé par le circuit qui reçoit sur la ligne SDA juste
après la réception du 8ème bit. C'est l'émetteur qui le lit de la même façon qu'on lit un bit ordinaire.
SDA=0 acquittement positif (ACK), SDA=1 acquittement négatif (NOACK),

 L’adresse et le bit R/W :


Comme on peut brancher plusieurs composants sur un bus I2C, il est nécessaire de définir une
adresse unique pour chacun. Elle est codée sur 7 bits A6 A5 A4 A3 A2 A1 A0. Le maitre qui
démarre une séquence d'échange envoie l'adresse du slave juste après le start condition. Comme il y
a seulement 7 bits, le maitre envoie à la 8ème position le bit R/W pour indiquer au esclave s'il désire
une émission (R/W=0) ou une réception (R/W=1).

Brevet Technicien Supérieur – Systèmes Electroniques Page 7


Centre de BTS

Le standard I2C supporte maintenant l'adressage sur 10 bits. Comme avec 7 bits on peut adresser
jusqu'à 128 composants, cela nous suffira largement. :

II. Analyse de projet


1) Cahier de charge
Le projet consiste à réaliser une maquette de bus i2c, pour faire une liaison série synchrone
entre quatre pics 16f877, le premier joue le rôle de maître (master) , relié à trois boutons et une
afficheur LCD qui affiche les informations désirées (température, fréquence et luminosité), c’est lui
qui gère la communication entre les autres pic s (esclave).

le premier esclave relié à un capteur de température (LM355).


le deuxième relié à une source de fréquence
Le troisième relié à un capteur de luminosité (lDR)

2) Analyse fonctionnel
a) Bête à cornes

L’étudiant Les travaux


practiques

Maquette
didactique du

Bus I2C

La réalisation des Travaux pratiques du bus I2C

Brevet Technicien Supérieur – Systèmes Electroniques Page 8


Centre de BTS

b) Diagramme pieuvre

Les travaux
pratiques
Étudiants
Sécurité
FP1
FC1
Maquette de bus
I2C

FC2 FC3
Energie
L’environnement
électrique

FP 1 Réaliser des TP de bus I2C pour les étudiants.


FC1 La sécurité des matériels et des utilisateurs.
FC 2 La consommation de l’énergie électrique.
FC3 Il ne faut pas avoir des risques sur le milieu de
travail (les salles des TP).

c) Diagramme SADT
Energie Commande
électriqu
e
La réalisation des Travaux pratiques du bus TP I2C réalisé
TP I2C
I2C

Maquette du bus I2C

Brevet Technicien Supérieur – Systèmes Electroniques Page 9


Centre de BTS

3) Schéma fonctionnelle :

Figure 3 : schéma fonctionnelle de maquette

III. Acquisition et configuration


1)PIC 16F877 en mode I2C
Le mode I2C du PIC 16F877 peut être configuré en master ou en slave. Il utilise les broches
RC3/SCL (Horloge) et RC4/SDA (données). Ces broches doivent être configurées en ENTREE à
l'aide du registre TRISC et doivent être munie de résistances de pull-up externes nécessaire au
fonctionnement I2C. Les fréquences d'horloges supportées sont 100 kHz, 400 kHz et 1 MHz. L’accès
au module en lecture et écriture se fait à l'aide du registre tampon (buffer) SSPBUFF. La transmission
et la réception se fait à l'aide du registre à décalage SSPSR auquel nous n’avons pas directement
accès.

SSPBUF
SSPCON
SCK/RC3

SSPCON2

SDA/RC4 SSPSTAT

SSPSR SSPADD

Figure 4 : schéma synoptique de mode i2c en pic16f877

 Transmission d’un octet

Brevet Technicien Supérieur – Systèmes Electroniques Page 10


Centre de BTS

Pour transmettre un octet, il suffit de le copier dans le registre SSPBUF, et le module MSSP
s’occupe du reste. Au moment de l’écriture dans SSPBUF, le bit BF passe à 1 et la transmission
commence. A la fin de la transmission, le bit SSPSTAT.BF repasse à 0 et le drapeau d’interruption
PIR1.SSPIF passe à 1.

Le bit BF apparaît donc comme un bit très important, c’est lui qui nous permet de savoir si le
registre SSPBUF est libre ou non Si on tante d'écrire dans SSPBUF alors que BF=1, le bit
SSPCON.WCOL passe à 1 pour indiquer une collision et l'écriture n'a pas lieu.

 Réception d’un octet

A la fin de la réception d'un octet, celui-ci est transféré dans SSPBUF, l’indicateur SSPSTAT.BF
et le drapeau d’interruption PIR1.SSPIF passent à 1. BF repasse automatiquement à 0 au moment de la
lecture de SSPBUF alors que SSPIF soit être remis à 0 par soft.

Si le PIC termine la réception d'un octet avant que l'octet précédent qui se trouve dans SSPBUF
n'ait été lu, on a une erreur qui sera signalé par le drapeau SSPOV. Le transfert n'a pas lieu, l’octet
arrivé est perdu.

Les registres de configuration

SSPCON : registre de control (BANK0)


SSPCON2 : registre de control (BANK1)
SSPSTAT : registre d'état (BANK1)
SSPADD : registre d'adresse (BANK1)

 Le registre SSPSTAT

SMP CKE D/A P S R_W UA BF

SMP : Slew rate control set bit (1 pour 100 KHz et 1MHz, 0 pour 400 KHz)
CKE : Input levels set bit (0 = bus I²C, 1 = bus SMBUS)
D_A : Data / Address bit (0 = address, 1 = data)
P : stoP bit
S : Start bit
R_W : Read/Write bit information (0 = write, 1 = read)
UA : Update address
BF : Buffer Full / data transmit in progress

Brevet Technicien Supérieur – Systèmes Electroniques Page 11


Centre de BTS

Le bit SMP : Il détermine si le filtre doit être ou non mis en service. Il vous suffit de savoir que si
vous travaillez avec une fréquence de 100 KHz ou de 1 MHz, vous devez mettre ce bit à « 1 » (hors-
service). Par contre, pour une vitesse de400 KHz, vous le laisserez à « 0 » (en service).

Le bit CKE : prend également une signification différente. Si vous mettez ce bit à « 1 », vous
travaillerez avec des niveaux d’entrée compatibles avec le bus SMBUS. Par contre, en le laissant à «
0 », vous travaillerez avec des signaux compatibles I²C .

Le bit D_A : vous indique si le dernier octet reçu ou transmis était un octet de donnée (1) ou un
octet d’adresse (0). Ceci vous permet de savoir où vous en êtes dans le transfert d’informations.

Le bit P : est également un indicateur. Il vous informe si le dernier événement détecté était un stop-
condition (P = 1). Il s’efface automatiquement dès qu’un autre événement est reçu. Il s’efface
également lors d’un reset, ou si vous mettez le module MSSP hors-service.

Le bit S : est un indicateur qui procède exactement de la même façon, mais pour un start condition.

Le bit R_W : a deux fonctions distinctes selon qu’on travaille en I²C maître ou en I²C esclave :

En I²C esclave, il vous indique l’état du bit R/W (bit 0 du premier octet qui suit le start-
condition). Si R/W vaut « 0 », une écriture est donc en cours, s’il vaut « 1 », il s’agit d’une
lecture. Ce bit est valide entre la détection de la correspondance d’adresse (Si c’est votre PIC
qui est sélectionnée par le maître) et la fin de la trame en cours, donc jusqu’au prochain
stop-condition , répète start-condition , ou bit NOACK (acquittement négative).

En I²C maître, il vous informe si un transfert est en cours (1) ou non (0).

Le bit UA : est un indicateur utilisé uniquement en esclave sur adresses 10 bits. Il vous prévient
quand vous devez mettre votre adresse à jour en mode I²C.

Dans le cas de mode d’adresse 10 bits nécessite 2 octets, le positionnement automatique de ce bit
UA vous signale que le premier octet d’adresse a été traité, et qu’il est temps pour vous de placer
votre second octet d’adresse dans le registre concerné (et inversement).

le bit BF : est un indicateur qui indique si le registre SSPBUF est plein (1) ou vide (0). Evidemment,
positionné, en réception, il signifie que l’octet a été reçu, alors qu’en émission il signale que la
transmission de l’octet n’est pas encore terminée.

Brevet Technicien Supérieur – Systèmes Electroniques Page 12


Centre de BTS

 Le registre SSPCON :

WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM2 SSPM0

WCOL : Write COLlision detect bit


SSPOV : SSP OVerflow indicator bit
SSPEN : SSP ENable select bit
CKP : Pause (si 0)
SSPM3 : SSP select bit M3
SSPM2 : SSP select bit M2
SSPM1 : SSP select bit M1
SSPM0 : SSP select bit M0

Bit WCOL : est un indicateur qui signale quand une collision d’écriture (WCOL = 1). Il y a 2 cas
possibles :

- En mode master, cette collision arrive si vous tentez d’écrire dans le registre SSPBUF et le
bus utilise par d’autre circuit (bus pas libre, start-condition pas encore envoyée…). Cette
collision a pour conséquence que la donnée n’est pas écrite dans le registre SSPBUF (bloqué
en écriture).

- En mode slave, ce bit sera positionné si vous tentez d’écrire dans le registre SSPBUF alors
que le mot précédent est toujours en cours de transmission. Vous devrez remettre ce flag à «
0 » par logiciel.

Bit SSPOV : est un indicateur vous informe d’une erreur de type « overflow ». C’est-à-dire que vous
venez de recevoir un octet, alors que vous n’avez pas encore lu le registre SSPBUF qui contient
toujours l’octet précédemment reçu. Le registre SSPBUF ne sera pas écrasé par la nouvelle donnée,
qui sera donc perdue. Vous devez remettre ce flag à « 0 » par logiciel. Ce bit n’a donc de
signification qu’en réception.
Bit SSPEN : permet de mettre tout simplement le module I 2C en service. Les pins SCL et SDA
passent sous le contrôle du module MSSP. Les pins SCL et SDA devront cependant être configurées
en entrée via TRISC
Bit SSPMx : sont les bits qui déterminent de quelle façon va fonctionner le module I²C.

Brevet Technicien Supérieur – Systèmes Electroniques Page 13


Centre de BTS

SSMP3 SSMP2 SSMP1 SSMP0 FONCTIONNEMENT

0 1 1 0 mode I²C esclave avec adresse sur 7 bits

0 1 1 1 mode I²C esclave avec adresse sur 10 bits

1 0 0 0 mode I²C maître : fréquence déterminée par le registre


SSPADD -> F = FOSC / (4 * (SSPADD+1))

1 0 0 1 réservé

1 0 1 0 réservé

1 0 1 1 Mode esclave forcé à l’état de repos

1 1 0 0 réservé

1 1 0 1 réservé

1 1 1 0 Mode maître avec adresses 7 bits, interruptions sur


événements S et P

1 1 1 1 Mode maître avec adresses 10 bits, interruptions sur


événements S et P
 Le registre SSPCON2
L

GCEN ACKSTAT ACKDT ACKEN RCEN PEN RSEN SEN

GCEN : General Call ENable bit (réponse appel général)


ACKSTAT : ACKnowledge STATus bit (état du bit ACK reçu)
ACKDT : ACKnowledge DaTa bit (valeur transmise)
ACKEN : ACKnowledge ENable bit (placer l’acknowledge)
RCEN : ReCeive ENable bit (lance la réception)
PEN : stoP-condition ENable bit (générer stop-condition)
RSEN : Repeated Start-condition ENable bit (générer SR)
SEN : Start-condition ENable bit (générer S)

Bit GCEN : est le seul bit qui concerne le mode esclave. Si vous validez ce bit, le PIC répondra non
seulement à l’adresse que vous avez placée dans SSPADD, mais également à l’adresse Réservée
d’appel général (0x00).
Bit ACKSTAT : vous donne l’état du bit d’acquittement envoyé par l’esclave lorsque vous écrivez
des données. Si ACKSTAT vaut « 0 », c’est que l’esclave vous a envoyé un « ACK » (acquittement
favorable, s’il vaut « 1 », c’est qu’il n’y a pas eu d’acquittement (NOACK).

Brevet Technicien Supérieur – Systèmes Electroniques Page 14


Centre de BTS

Bit ACKDT : est la valeur de l’acquittement à envoyer à l’esclave lorsque vous procédez à une
lecture. Ce bit sera envoyé lorsque vous positionnerez le bit ACKEN. De nouveau, une valeur« 0 »
signifie que vous envoyez un « ACK », une valeur « 1 » sera placée pour un NOACK.

Bite ACKEN : lance la génération de l’acquittement. La valeur de ce bit (ACK ou NOACK) est
déterminée par la valeur que vous avez placée dans ACKDT. Ces 2 bits sont donc liés.
Bit RCEN : Lance la réception d’un octet en provenance de l’esclave. Pour lancer une écriture, on
place la valeur à écrire dans SSPBUF, pour lancer une lecture, on met RCEN à « 1 ».
Bit PEN : Lance la génération automatique du stop-condition
Bit RSEN : Lance la génération du répète de start-condition
Bite SEN : Lance la génération du start-condition.

 Le registre SSPADD
Son nom signifie Synchronous Serial Port ADDress register. Il a deux fonctions
complètement distinctes, selon que l’on travaille en I²C maître ou en I²C esclave.
 Mode esclave.
En mode I2C slave, ce registre doit contenir l'adresse du slave. Le bit 0 est réservé, il
doit être toujours placé à zéro, l'adresse doit être écrite à partir du bit 1. En cas
d'adresse 7 bits, cela ne pose pas de problème. En cas d'adresse 10 bits, l'adresse est
écrite en 2 temps, On commence par écrire 1 1 1 1 0 A9 A8 0 dans SSPADD, en
attend l'indicateur UA, ensuite on écrit A7 A6 A5 A4 A3 A2 A1 A0

Adresse de slave code 7 bit Bit0 réserve se mit a 0

 Mode maitre

En mode I2C master, ce registre permet de déterminer la fréquence de communication


𝑭𝒐𝒔𝒄
F=𝟒.(𝑺𝑺𝑷𝑨𝑫𝑫 + 𝟏)
Les fréquences possibles sont : 100 kHz, 400 kHz et 1 MHz donc
𝑭𝒐𝒔𝒄
SSPADD = -1 (HZ)
𝟒 .𝑭

Dans notre projet s’intéresse a étudié des PIC, au mode maitre en reception et les esclaves en mode émission

Brevet Technicien Supérieur – Systèmes Electroniques Page 15


Centre de BTS

a) Master en réception

Figure 5 : la trame de maitre en réception

organigramme
Début

Configuration du bus I2C maître

Envoyer START

Envoyer adresse avec R/W=1

Teste Acquittement

Adresse
Envoyer R-START Ok?

Lancer la réception d'un octet en activant RCEN

Attendre la fin de réception en scrutant RCEN

Traiter l'octet reçu

Envoyer ACK Autre octet ?

Envoyer NOACK

Stop condition

Fin

Brevet Technicien Supérieur – Systèmes Electroniques Page 16


Centre de BTS

Les étapes suivant pour programmer I 2C maître :

 On positionne le bit SSPCON2.SEN sur le master, celui-ci envoie le START bit sur la ligne SDA
puis r.à.z automatiquement le bit SEN et positionne le drapeau d'interruption PIR1.SSPIF,

 On copie l’adresse avec R/W=0 dans SSPBUF, les bits SSPSTAT.BF et SSPSTAT.R_W passent à 1,
la transmission démarre, après le 8ème coup d'horloge, SSPSTAT.BF repasse à zéro, après le 9ème
R_W repasse à 0,

 Tester L'acquittement sur l'adresse est renvoyé par le slave pendant le 9ème coup d'horloge sur la
ligne SDA : si l’adresse identique a se lui de slave le bit ACKSTAT de registre SSPCON2 passe a
« 0 », si non SSPCON2. ACKSTAT=1 c.-à-d. acquittement non favorable donc en envoi le répète
de START condition (R_Start ) On positionne le bit SSPCON2.RSEN .
 Le module I2C master voyant le RCEN=1 essaye de commencer une réception par l'envoi d'une
rafale de 8 coups d'horloge. A la fin de la réception, le module I2C master ramène le bit
SSPCON2.RCEN à 0, transfert l’octet reçu dans SSPBUF, l’indicateur BF passe à 1 ainsi que le
drapeau d’interruption PIR1.SSPIF. Ensuite Il force l'horloge à 0 (pause) pour donner le temps au
programme d'envoyer l’Acquittement au esclave (ACK ou NOACK) .
 A la fin de réception de l’octet le maitre envoi une acquittement au esclave pour demande ou refuse
l’octet suivant : pour demander l’octet (ACK) en plaçe SSPCON2.ACKDT et en validant le bit
SSPCON2.ACKEN=1 , pour refuser (NOACK) l’octet en plaçant SSPCON2.ACKDT et en validant
le bit SSPCON2.ACKEN=1 puis en envoi la STOP condition.

Figure 6 : structure du trame du bus et les etats des bit du registre de contrôle (pic 16f877)

Brevet Technicien Supérieur – Systèmes Electroniques Page 17


Centre de BTS

b) L’esclave en émission

Figure 7 : la trame de esclave en emission

organigramme :

Debut

Configuration du module I2C esclave

Attendre l'adresse en scrutant SSPIF

Placer une donnée dans SSPBUF

Libérer l'horloge à l'aide de CKP

Attendre fin transmission en scrutant


SSPIF

Tester CKP pour


déterminer la nature de
l'ACK envoyé par le
maitre

Fin

Les étapes suivent pour programmer I 2C slave :

Remarquons que l’esclave en transmission ne fait que préparer la donnée à transmettre dans son buffer
SSPBUF. C'est le master qui décide du début de l'échange puisque c'est lui qui gère l'horloge. Toutefois, le
slave peut bloquer un échange en bloquant l'horloge à 0.

Brevet Technicien Supérieur – Systèmes Electroniques Page 18


Centre de BTS

Dans ce cas on s’intéresse a l’état de l’interruption SSPIF de registre PIR1, ce dernier passe a « 1 » quand
l’adresse envoi par le maitre est ce lui de l’esclave

Notre programme détecte que SSPIF est passé à 1 :

 Si on vérifie le bit R_W, on trouve 1, on sait qu’on va envoyer un octet


 On copie un octet de donnée dans SSPBUF. L'indicateur SSPSTAT.BF passe à 1
 On replace le bit CKP à 1 pour libérer l'horloge. C'est le moyen d'informer le master que la donnée
est prête.
 Le master détecte, la libération de l’horloge, envoie une rafale de coup d’horloge, l’octet est transmis.
L’indicateur SSPSTAT.BF repasse à 0 après le 8ème
 Maintenant le master peut renvoyer soit un ACK, soit NOACK :
 Si c'est un ACK, le PIC (slave) positionne le drapeau SSPIF et r.a.z le bit CKP pour mettre
l'horloge en pause. Ceci donne au programme du slave le temps de préparer une nouvelle
donnée dans SSPBUF et libérer l'horloge ensuite.
 Si c'est un ACK, le PIC (slave) positionne le drapeau SSPIF et attendre l’envoi de stop
condition par le maitre

2) Organisation et configuration

a) Maitre du bus I2C

a 1. Organigramme

Notre pic communique avec trois esclaves par les adresse suivant

 Adresse d’esclave de température : 0x2D


 Adresse d’esclave de fréquence : 0x34
 Adresse d’esclave de luminosité : 0x38

Brevet Technicien Supérieur – Systèmes Electroniques Page 19


Centre de BTS

Début

Configuration du bus I2C maître +


configuration afficheur LCD

Afficher la valeur
du température
Envoyer l’adresse 0x5A

Recevoir la donnée

Afficher la valeur Traiter la donnée (T=a. donner)


du fréquence

Envoyer l’adresse 0x68


Afficher en LCD la valeur T

Recevoir la donnée

Traiter la donneée (F=a.


donner)

Afficher en LCD la valeur F

Afficher la valeur
du luminosité
Envoyer l’adresse 0x38

Recevoir la donnée

Traiter la donnée (l=a .donner)

Afficher en LCD la valeur T

a.2 configuration des registres de PIC

La configuration de PIC en mode Maître il faut configurer trois registres SSPSTAT, SSPCON
et SSPADD avec la vitesse 100khz et fréquence d’oscillation Fsc=20MHz

Brevet Technicien Supérieur – Systèmes Electroniques Page 20


Centre de BTS

 Configuration de registre SSPSTAT


Dans ce registre en détermine la vitesse et le bus utilise ( bus i2c + vitesse 100khz)

SMP CKE D/A P S R_W UA BF


1 0 0 0 0 0 0 0
Alors la valeur de SSPSTAT =B’10000000’ ou 0x80

 Configuration de registre SSPCON


Dans ce registre on a validé le bus i2c et mode de fonctionnement du module ( maître
fréquence = FOSC / (4 * (SSPADD+1)) ) et libration d’horloge (CKP=1)

WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM2 SSPM0


0 0 1 1 1 0 0 0

Alors la valeur de SSPSTAT =B’00111000’ ou 0x38

 Configuration de registre SSPADD

En mode I2C master, ce registre permet de déterminer la fréquence de communication

𝐅𝐨𝐬𝐜
F=
𝟒.(𝐒𝐒𝐏𝐀𝐃𝐃 + 𝟏)

Les fréquences possibles sont : 100 kHz, 400 kHz et 1 MHz donc avec Fosc=20MHz
𝐅𝐨𝐬𝐜
SSPADD = - 1 (HZ)
𝟒 .𝐅
A .N : donc SSPADD=(49)10 = b’00110001’ = 0x31

Les valeurs des registres du maitre (master)

 SSPADD=0x31
 SSPSTAT =0x80
 SSPCON=0x38

Brevet Technicien Supérieur – Systèmes Electroniques Page 21


Centre de BTS

b) Esclaves du bus I2C

b.1) mesure de la température : esclave température

 étude du capteur LM355((voire annexe)


 présentation

LM335 est un capteur de température sa tension est proportionnelle à la température


absolue en °K ceci à raison de 10 mV/°K. Permet de mesurer des températures
comprises entre –40°C et +100°C. Supporte que 120 °C au maximum, et ne convient
pas pour les capteurs solaire qui peuvent atteindre près de 200 °C à vide en plein soleil.
destruction

Figure 8 : lm335z capteur de Figure 9 : schéma de mesure


température
 caractéristique de lm355z (vo ire annexe)

- A 0°C, soit 273,15 °K, la LM335 délivre 2,7315 V et 100°C, soit 373,15 °K, la LM335 délivre
3,7315 V Sa pente est de 10 mV/°K.

- Dans la plage -20 °C à +125 °C, nous aurions une tension , aller de 2,5315 V à 3,9815 V

D’après le document de constructeur on a trouvé une relation entre la température et la tension


𝐓 Vout
de sortie par : Vout = 𝐕𝐨𝐮𝐭(𝐭𝟎) 𝐓𝟎
avec = 10mv/k
T0

⇒ Vout = 10.10-3 (𝜽 + 273,15) avec 𝜽 en °C

Brevet Technicien Supérieur – Systèmes Electroniques Page 22


Centre de BTS

 la conversion analogique numérique de Vout


Notre pic16F877 contient un convertisseur analogique / numérique qui permet un
échantillonnage sur 10 bits. Le signal numérique peut donc prendre 1024 valeurs.
On a Vout = 10.10-3 ( 𝛉 + 273,15)
Donc 𝛉 =100 Vout – 273,15
𝐕𝐫𝐞𝐟 + − 𝐕𝐫𝐞𝐟 −
Le CAN : on a quantum q= avec Vref + = 5V et Vref -- =0V
𝟐𝟏𝟎
𝟓
Donc q= 𝟏𝟎𝟐𝟒 alors Vout = N . q avec N : la valeur numérique

Equation de récurrence de température de lm335z


D’où
𝜽 =0.488281.N – 273,15
 Organigramme d’esclave de température

Début

Configurationde pic en mode esclave i2c

Configuration du convertisseur CAN

Non L’adresse présente et


identique à son adresse

Démarrage de conversion par le CAN

Traitement de la valeur N :
𝜽 =0.488281.N – 273,15

Démarrage de module i2c pour


envoyer la donnée au maître

Oui
Une autre donnée ?

fin

Brevet Technicien Supérieur – Systèmes Electroniques Page 23


Centre de BTS

 Configuration du registre du PIC


 Convertisseur analogique CAN
 Registre ADCON0 (voir l’annexe)
Le canal de conversion est la broche RA2 de PORTA

ADCS1 ADCS0 CHS0 CHS2 CHS1 GO/DONE ----- ADON


A0 1 0 1 0 0 0 1
DCON0 = 0x51
 Registre ADCON1 (voir l’annexe)
Ce registre détermine la justification (droit ) et configuration de l’entré de
référence ( Vref=VDD)

ADFM ----- ------ --------- PCFG3 PCFG2 PCFG1 PCFG0


1
V 0 0 0 1 0 0 1

alors de ADCON0 = 0x51

 Esclave I2C de température

La configuration de PIC en mode esclave demande la configuration des trois registres


SSPSTAT, SSPCON et SSPADD avec la vitesse 100khz et la fréquence d’oscillation
Fsc=20MHz

 Configuration de registre SSPSTAT


Dans ce registre on détermine la vitesse et le bus utilisé ( bus i2c + vitesse 100khz)

SMP CKE D/A P S R_W UA BF


1 0 0 0 0 0 0 0
Alors la valeur de SSPSTAT =B’10000000’ ou 0x80

 Configuration de registre SSPCON


Dans ce registre on valider le bus i2c et mode de fonctionnement du module (ESCLAVED
adresse sur 7 bit) et libération d’horloge (CKP=1)

WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM2 SSPM0


0 0 1 1 0 1 1 0

Brevet Technicien Supérieur – Systèmes Electroniques Page 24


Centre de BTS

Alors la valeur de SSPSTAT =B’00110110’ ou 0x36

 Configuration de registre SSPADD


En mode I2C slave, ce registre doit contenir l'adresse du esclave. Le bit 0 est réservé, il doit
être toujours placé à zéro, l'adresse doit être écrite à partir du bit 1. Et on propose 0x2D
comme adresse de cet esclave.

0 1 0 1 1 0 1 0

Les valeurs des registres du maitre (master)

 SSPADD=0x5A
 SSPSTAT =0x80
 SSPCON=0x36

b 2. Mesure de la fréquence : esclave de la fréquence

 Méthode de mesure de la fréquence

La méthode utilisée est la mesure par comptage voir le (figure 10-11)

Figure 10 : mesure par comptage Figure 11 : mesure la fréquence T=f(T0)

Brevet Technicien Supérieur – Systèmes Electroniques Page 25


Centre de BTS

D’après la figure 11 on peut déduire une relation entre f0

(la fréquence à mesure) et la valeur N :

𝟏
On a : T = N T0 avec T0= 𝐅
𝟎

N
D’où F0 = T pour lire N comme une valeur mesure .il faut Prendre T :

T=1s N en Hz
T=1ms N en KHz
T=1us N en MHz

Figure 12 : l’entre de compteur Tmr1 dans le pic 16f877

Brevet Technicien Supérieur – Systèmes Electroniques Page 26


Centre de BTS

 Organigramme d’esclave de fréquence Début

Configuration de pic en mode esclave i2c

Configuration le compteur tmr1

Non L’adresse présente est


identique à son adresse

Démarrer le compteur

Attendre (1s,1ms ou 1us…)

Arrêter le compteur

Traiter la donnée N

Démarrage de module i2c pour


envoyer la donnée au maître

Oui
Une autre donnée ?

Fin

 Configuration des registres du PIC


 Registre d’esclave I2C
La configuration des registre SSPSTAT et SSPCON2 est la même a celui de
esclave de température (les mêmes valeurs).
SSPADD doit etre. Et on propose 0x34comme adresse de cet esclave.
Brevet Technicien Supérieur – Systèmes Electroniques Page 27
Centre de BTS

0 1 1 0 1 0 0 0

Les valeurs des registres du maitre (master)

 SSPADD=0x48
 SSPSTAT =0x80
 SSPCON=0x36

 Registre de TMR 1(voir l’annexe)

TMR1 est un Timer/Compteur 16 bits accessible en lecture/écriture par


l'intermédiaire des registres 8 bits TMR1H (bank0) et TMR1L (bank0) qui
constituent sa partie haute et sa partie basse.

Figure 12 : schéma synoptique de Tmr1

 Mode compteur

Dans ce mode, TMR1 est incrémenté à chaque front montant de l'horloge externe T1CKI (RC0) ou
l'horloge dédiée générée par l’oscillateur T1OSC à condition de positionner le bit T1OSCEN à 1 et de
brancher un quartz entre les broche RC0 et RC1.

En mode compteur, RC0 et RC1 sont automatiquement configurées en entrée, on n’a pas
besoin de configurer les bits TRISC,0 et TRISC,1

Pour utilise ce compteur il faut configurer T 1CON

Brevet Technicien Supérieur – Systèmes Electroniques Page 28


Centre de BTS

- - T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON


0 0 0 0 0 1 1 0

Donc la valeur de T 1CON=0x06

b3. Mesure de la luminosité : esclave luminosité

a) Etude du capteur LDR

Vcc

LDR

Pic
R

Figure 13 : capteur LDR Figure 14 :schéma capteur LDR

b) L’équation de la luminosité

Etude pratique :

O n a fait cette étude pout trouver la relation entre la résistance de la LDR et la luminosité,
l’aide d’un fluxmètre et nous avons obtenu le résultat suivant :

Résistance(KΩ) 4,55 4,4 4,2 4 3,8 3,5 3,3 3 2,5 2,2 1,9 1,6 1,4 1,25 0,84 0,5

Luminosité(Lux) 159 160 170 190 200 220 250 270 300 350 400 500 700 800 1000 2000

Pour trouver l’équation de récurrence on a trouver une équation entre la luminosité et la tension.
on a rempli le tableau suivant :

v= vcc .R/(R +Rldr)

Brevet Technicien Supérieur – Systèmes Electroniques Page 29


Centre de BTS

tension
(V) 0,9 0,92 0,96 1 1,04 1,11 1,16 1,25 1,42 1,56 1,72 1,92 2,08 2,22 2,71 3,33
lux 159 160 170 190 200 220 250 270 300 350 400 500 700 800 1000 2000

Figure 15 :courbe lumière en fonction de tension

A partir de 1000 LUX la courbe devient une fonction linéaire donc on a pu extraire la relation
entre la tension et la luminosité

𝟐𝟎𝟎𝟎−𝟏𝟎𝟎𝟎
Lux= ×𝑼
𝟐,𝟐𝟓−𝟏,𝟏𝟐

Lux = 884,955*U
𝐕𝐫𝐞𝐟 + − 𝐕𝐫𝐞𝐟 −
Le CAN : on a quantum q= 𝟐𝟏𝟎
avec Vref + = 5V et Vref -- =0V

𝟓
Or q= 𝟏𝟎𝟐𝟒 alors Vout = N . q avec N : la valeur numerique

𝟖𝟖𝟒, 𝟗𝟓𝟓
𝐋𝐔𝐗 = ×𝐍
𝟏𝟎𝟐𝟒
𝑳𝒖𝒙 = 𝟎, 𝟖𝟔𝟒𝟐 × 𝑵

Brevet Technicien Supérieur – Systèmes Electroniques Page 30


Centre de BTS

Organigramme esclave luminosité :


Début

Configuration de pic en mode esclave i2c

Configuration du convertisseur CAN

Non L’adresse présente est


identique à son adresse

Démarrage de conversion par le CAN

Traitement de la valeur N
𝑳𝒖𝒙 = 𝟎,𝟖𝟔𝟒𝟐 × 𝑵

Démarrage de module i2c pour


envoyer la donnée au maître

Oui
Une autre donnée ?

fin

La même configuration qu’esclave de température

Brevet Technicien Supérieur – Systèmes Electroniques Page 31


Centre de BTS

III : simulation de fonctionnement


4- Simulation du schéma principal

Figure 16 : schéma principal (unité de traitement)

Figure 17 : capteur + l’alimentation Figure 18 : afficheur LCD


Brevet Technicien Supérieur – Systèmes Electroniques Page 32
Centre de BTS

5- Algorithme de fonctionnement
2.1- algorithme de maitre

2.2 Algorithme d’esclave du température

Brevet Technicien Supérieur – Systèmes Electroniques Page 33


Centre de BTS

2.3 Algorithme d’esclave du fréquence

2.4 Algorithme de luminosité

6- Programmation (voir annexe)

Brevet Technicien Supérieur – Systèmes Electroniques Page 34


Centre de BTS

IV: Réalisation
1- Circuit imprimé
LE TYPON :
Les pistes doivent être larges et les pastilles assez grandes en fonction des composants qu'elles
recevront :

Figure 19 : circuit imprimé

Terrage de la carte

MATERIEL NECESSAIRE :

 Plaque cuivrée simple face photosensible


 Révélateur
 Perchlorure de fer (chlorure ferrique)
Brevet Technicien Supérieur – Systèmes Electroniques Page 35
Centre de BTS

 Alcool à brûler
 Etain liquide
 Acétone
 Vernis protecteur
 Insoleuse
 Divers bacs
 Gants de protection

2- PREPARATION :

3 L'INSOLATION :

Les plaques photosensibles sont revêtues d'un papier protecteur opaque qui protège la face
photosensible de l'ultra-violet pendant son stockage,

Brevet Technicien Supérieur – Systèmes Electroniques Page 36


Centre de BTS

Figure 20 :Le typon est sous la plaque photosensible

4- LA REVELATION

Figure 21 :La plaque après révélation

3- LE PERCAGE :

Brevet Technicien Supérieur – Systèmes Electroniques Page 37


Centre de BTS

Figure 22 :Perçage de la plaque

6-TEST

Figure 23 :test de carte

7-soudage

Brevet Technicien Supérieur – Systèmes Electroniques Page 38


Centre de BTS

Figure 24 :soudage de carte

Figure 25 : circuit 3D visualisation

Brevet Technicien Supérieur – Systèmes Electroniques Page 39


Centre de BTS

Conclusion

Au terme de ce projet de fin d’étude, nous avons appris tous le procédé


et toute la difficulté à réaliser une maquette I2C depuis sa conception
jusqu’à sa réalisation, ce rapport est une contribution à l’effort apporté dans
le domaine de la microélectronique pour faire une communication entre
plusieurs circuit chacun à sa fonction.

Dans notre cas on a vu comment se fait le Protocol de la


communication, toucher de nouveaux matériels et logiciel. Ce travail nous a
permis d’enrichir nos connaissances au niveau de la programmation et la
réalisation. Mais au début nous avons rencontré plusieurs difficultés parmi
lesquelles la transmission entre maitre et esclave et la deuxième difficulté
l’étude pratique des capteurs.

Brevet Technicien Supérieur – Systèmes Electroniques Page 40


Centre de BTS

ANNEXES

Brevet Technicien Supérieur – Systèmes Electroniques Page 41


Centre de BTS

Annexe de programmation

Brevet Technicien Supérieur – Systèmes Electroniques Page 42


Centre de BTS

Brevet Technicien Supérieur – Systèmes Electroniques Page 43


Centre de BTS

Annexe de pic 16F877

Brevet Technicien Supérieur – Systèmes Electroniques Page 44


Centre de BTS

Annexes du capteur de température

Brevet Technicien Supérieur – Systèmes Electroniques Page 45


Centre de BTS

Annexe de protocole I2C MicKroC

Brevet Technicien Supérieur – Systèmes Electroniques Page 46

Оценить