Electronica

http://cgrosse1.free.fr/guppy/

Interface I2C pour microcontrolleur PIC16F84 (Bus I2C)


 ppic.gif
Photo du module I2C à base de PIC16C84

Descriprion du montage

Ce module se connecte sur l'interface i2c universelle pour PC décrite sur ce site grace a un cable muni de connecteurs 6P/4C. Une fois connecté sur le bus et alimenté via celui-ci ( aucune alimentation externe n'est requise ! ),le PIC16C84 se comporte comme un composant I2C possédant 8 registres internes 8 bits reg0 à reg7 accessible individuellement en lecture et en écriture.D'autre part , il est possible de stocker ces registres dans l'EEPROM du PIC qui assure la rétention des données même en cas de coupure de l'alimentation. Les données stockés dans l'EEPROM peuvent être rechargés dans les registres de manière automatique lors des prochaines mises sous tension ! Ce module est une base solide pour d'autre projets nécessitant un controle à partir du bus I2C.

Schéma

pici2c.gif
Schéma du module I2C à base de PIC16C84

Les lignes SDA et SCL sont directement reliées aux broches bidirectionnels RB0/RB1. L'utilisation de RB0/INT permet de déclencher une interruption logicielle du PIC16C84 lors de l'arrivé d'une trame I2C.Les broches RB4,RB5 et RB6 sont des entrées qui possède des résistances de pull-up vers le +5V. Un dip-switch à 3 interrupteur permet de forcer celles-ci à l'état bas.Il est ainsi possible de personaliser l'adresse I2C de la platine ( même lorque le montage est alimenté ! ).L'adresse de base étant 24. Un oscillateur à quartz cadencé à 2Mhz est connecté sur les entrés OSC1 et OSC2.L'alimentation du montage se fait directement à partir du bus I2C. Le condensateur C3 assure un découplage correct de l'alimentation du PIC.

conecb.gif
Brochage du module vu de dessus


Les deux modular jack ont un brochage différent repéré par les symboles comme sur la photo ci-dessus. Pour avoir plus de précision sur la connection de ce module à l'interface allez voir sur la page de cette dernière.

Communication avec le module

Nomenclature

Condensateurs

C1,C2 : 20pF
C3 : 100nF

Circuits Intégrés

IC1 : PIC16C84

Divers :

Un quartz 2Mhz
Un interrupteur 3 dip-switch
Un porte circuit 6 broches
Un porte circuit 18 broches
Deux connecteur modular jack 6P/4C à souder sur CI.
Le cordon de laison 6P/4C.

Logiciels

Le source I2C.ASM devra être compilé par l'assembleur MPASM de MICROCHIP.Le résultat obtenu est le fichier I2C.HEX qui servira a programmer le PIC16C84.
Une unité écrite en Turbo Pascal permet de gérer ces modules.Vous pouvez librement télécharger le source ( PIC.PAS ) de cette unité , ou directement l'unité compilée ( PIC.TPU ) a intégrer dans vos projets futurs. Le listing étant documenté , je ne m'attarderais pas sur le fonctionnement de cette unité.

Une DLL ( 16 bits ) sera bientot disponible pour ceux qui désirerait programmer sous windows.

A titre d'exemple, le programme TESTPIC.EXE permet de tester ce module. Vous pouvez également télécharger le source TESTPIC.PAS ( nécessite les fichiers BUSI2C.TPU et PIC.TPU )

tpic.gif
Illustration du programme de test