Le principe de fonctionnementL'interface proposée permet d'émuler un bus I2C a partir du port parallèle d'un PC. Cette interface contrôle le bus en mode multi-maitres. Ici , le PC jouera soit le rôle de maitre soit le rôle d'un simple esclave en attente d'un message I2C. Cette interface simple à construire assure des niveaux électriques compatibles avec ceux d'un vrai bus I2C. Le logiciel qui pilote cette interface a été écrit en turbo-pascal mais le listing est facilement transposable dans d'autres languages.Une DLL (16 bits ) pour windows 3.xx est en cours de développement, permettant ainsi de piloter l'interface a partir de Visual Basic ou bien de Delphi.
Schéma | Schéma électrique |
Une analyse rapide du schéma révèle que le circuit doit être alimenté par une alimentation +5V régulée et filtrée.Une led permet de constater la présence du +5V.Attention ! Vu la consommation du montage , il est impossible d'alimenter celui-ci directement à partir du port parallèle. Les broches 1 (strobe) et 14 ( autofeed ) servent a générer les lignes SDA et SCL. Leur signal est inversé grâce aux deux portes IC2 (CD 4001) pour attaquer les bases des transistors T1 et T2.Les résistances R4 et R5 font office de Pull-up sur les lignes SDA et SCL. Celles-ci sont donc maintenue à l'état haut lorsque le bus est au repos. Lorsque les transistors T1 et T2 reçoivent un signal sur leurs bases , les lignes SDA et SCL sont amenées au niveau de la masse. Enfin , les entrées 12 ( Paper empty ) et 10 ( Acknoledge ) du port centronic servent a espionner les niveaux présents sur les lignes SDA et SCL. Les résistances R1 et R2 limitent le courant dans ces entrées. Réalisation pratique | Photo du prototype intégrant l'interface et le régulateur de tension |
La nomenclature ci-dessous recense tous les composants nécessaires à la construction du prototype présenté sur la photo. Ceci intègre l'interface I2C décrite dans cette page ainsi qu'un régulateur de tension fournissant un niveau +5V régulé et filtré. L'utilisation d'un petit bloc secteur ( 9V DC ou 12V DC 500ma) évite l'utilisation d'un transformateur et d'un pont de diode. Tous les composants prennent ainsi place sur une platine d'expérimentation ELEX N°1. Une prise jack convenable permettra d'y connecter le bloc secteur. Le brochage des modular jack 6P/4C retenu assure la compatibilité avec les kit i2c vendus par SELECTRONIC. | Brochage du modular jack vu de dessus |
Afin de faciliter la connection des modules à cette interface , j'utilise un code de couleur ( rond rouge vide et carré bleu plein ) afin de distinguer deux types de brochage. La sortie de notre interface est du type rond rouge vide ! Vous vous demandez certainement pourquoi un tel codage ? Les cables 6P4C utilisés étant croisés , il faut donc prévoir sur chaque module deux types de brochage afin de pouvoir constituer une chaine I2C en respectant le principe suivant : On ne peut connecter deux modular qu'à la condition qu'ils aient des codes de couleur différente comme le montre l'exemple suivant ( sinon gare aux court-circuits ! ).Le nombre de modules connectable n'est limité que par la consommation des modules et la longueur totale de la chaine I2C ( environ 20 m ).
| Diagramme de connections des modules à l'interface |
NomenclatureRésistances :
R1,R6 : 100 Ohm R2,R3 : 2K2 Ohm R4,R5,R7 : 4K7 Ohm
Condensateurs :
C1 : 470uF 25V Radial électrochimique C2 : 100uF 10V Radial électrochimique
Transistors :
T1,T2 : 2N2222A
Circuits intégrés :
IC1 : Régulateur de tension 7805 IC2 : CD4001
Divers :
Une platine d'expérimentation ELEX1 Une led rouge Une prise centronic DB 25 broches à cabler une barettes sécables à picot droit. Une prise jack diamètre ... mm à monter sur châssis Un petit radiateur. Deux vis plastiques. Une prise Modular Jack 6P/4C. Un cordon avec embouts pour modular jack 6P/4C.
|
LogicielsUne unité écrite en Turbo Pascal permet de gérer cette interface. Cette unité est nécessaire au bon fonctionnement de tous les programmes décrit sur ce site .Vous pouvez librement télécharger le source ( BUSI2C.PAS 8Ko ) , ou directement l'unité compilée ( BUSI2C.TPU 10Ko ) 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. Mise en oeuvre et testsAfin de vérifier que l'interface fonctionne parfaitement , j'ai écrit un petit programme de test. Celui-ci permet à l'aide d'un multimètre de tester pas à pas l'état des lignes SDA et SCL du bus I2C.
Téléchargez le source TEST.PAS 1Ko ( vous devez posséder le fichier BUSI2C.TPU ) Téléchargez le programme de test TEST.EXE 6Ko
| Illustration du programme de test |
ApplicationsL'interface proposée ici est la base de nombreux projets faisant appel à des composants i2c. Sur les pages suivantes vous trouverez des applications maisons , des descriptions de kit et plein de programmes a télécharger . Bonne visite !
Date de création : 19/07/2006 @ 15:09
Dernière modification : 31/01/2008 @ 07:42
Catégorie : Bus I2C
Page lue 15836 fois
Prévisualiser la page
Imprimer la page
|