Electronica

Accueil  Nouvelles  Téléchargements  Liens  FAQ  Livre d'or  Forum
Module I2C : 16 Entrées/sorties numériques

 numeric.jpg
Photo du module

Le principe de fonctionnement

Ce module se connecte sur l'interface i2c universelle pour PC décrite sur ce site grâce à un cable muni de connecteurs 6P/4C. Le coeur du montage est composé de deux PCF8574 : des tampons 8 bits pour bus I2C. L'adresse de base de ce module I2C est 32. Il est possible de paramétrer les lignes d'adresses A0,A1 et A2 des composants de sorte qu'il devienne possible de connecter jusqu'à quatre modules de ce type sur un même bus i2c pour un total de 64 lignes d'entrée/sortie !. Le module connecté sur le bus est alimenté via celui-ci ( aucune alimentation externe n'est requise ! ).

Réalisation pratique

Le tableau ci-dessous rappelle la fonction de chaque broche du PCF8574. Pour plus d'informations rendez-vous sur le site de Phillips ou vous pouvez télécharger le Data-sheet du composant

 br8574.gif
Fonction des broches du PCF8574

 numeric.gif
schéma du module

Les entrées A0 A1 et A2 de IC1 et IC2 sont amenées au +5V via les résistances de Pull-up R1 à R6. Les interrupteurs ( dip-switchs ) permettent de forcer ces lignes à la masse et ainsi de définir l'adresse de base de chacun des composants. Pour éviter tout conflit, il est important de choisir deux adresses différentes pour les deux circuits IC1 et IC2. Les entrées/sorties P0 à P7 des PCF8574 sont capables de commander directement des LEDs sans résistances de limitation de courant ! Cependant une sortie utilisée pour commander une LED ne pourra jamais être utilisée comme une entrée car la tension de seuil d'une LED (0,6 à 1,6 V ) est trop basse et sera donc toujours interprétée comme une entrée connectée à la masse ! En effet, pour utiliser une des broches comme entrée, il suffit de forcer logiciellement son niveau au +5V grâce au programme ci-dessous puis de tester l'état de la broche ... un interrupteur externe forçant par exemple celle-ci à la masse. Les sorties INT des deux PCF8574 ne sont pas utilisées : elles servent à déclencher une interruption lorsque le PCF8574 est directement interfacé à un microcontrôleur. Ainsi tout changement sur une des entrée est directement notifié au microcontrôleur par une demande d'interruption. Ici, cette possibilité n'étant pas utilisée, on fera appel à un simple "Pooling logiciel" pour scruter à intervalles réguliers l'état des entrées.

 conecb.gif
Brochage du module vu de dessus

Les deux modulars jack ont un brochage différent repéré par des symboles ( voir la photo ci-dessus ). Pour avoir plus de précision sur la connection de ce module à l'interface, visitez la page de cette dernière. Tous les composants prennent place sur une platine d'expérimentation ELEX N°1 ( voir la photo du début ).

Nomenclature

Résistances

R1,R2,R3,R4,R5,R6 : 4K7

Diodes

16 Leds de couleur (facultatif et uniquement pour les broches utilisés en sortie !)

Circuit intégrés

IC1,IC2 : PCF8574

Divers :

2 dip-switch à 3 interrupteurs
2 Modular jack 6P/4C
2 Barrettes sécables de 8 plots

Logiciels

Une unité écrite en Turbo Pascal permet de gérer ces modules. Vous pouvez librement télécharger le source ( NUMERIC.PAS ) , ou directement l'unité compilée ( NUMERIC.TPU ) a intégrer dans vos projets futurs. Le listing étant documenté , je ne m'attarderai pas sur le fonctionnement de cette unité.

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

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

 tnumeric.gif
Illustration du programme de test

  

Date de création : 19/07/2006 @ 15:29
Dernière modification : 31/01/2008 @ 07:41
Catégorie : Bus I2C
Page lue 12694 fois

Réactions à cet article

Personne n'a encore laissé de commentaire.
Soyez donc le premier !

up Haut up


GuppY - http://www.freeguppy.org/   Site créé avec GuppY v4.5.8 - © 2004-2005 - Licence Libre CeCILL   GuppY - http://www.freeguppy.org/
Document généré en 0.66 seconde