SjtBits I2C Bus Extender
Introduction
Voici une carte permettant d'étendre significativement la distance opérationnelle d'un bus I2C. Produit par SJTbits converti la ligne d'horloge et de donnée du bus I2C en signal différentiel (et inversement). Cela permet d'étendre la distance de communication au delà de 30 mètres. L'utilisation de signal différentiel permet également d'assurer la stabilité du signal en utilisant des paires torsadées.
La carte I2C extender de SJTbits est une "passerelle" I2C/TWI transparente entre les différentes cartes I2C branchées sur un bus I2C différentiel. La carte accepte les deux lignes du bus I2C (SDA et SCL) et divise ces signaux du bus I2C en signaux entrant et sortant (soit quatre signaux logiques). Chacun des signaux unidirectionnels est connecté sur la ligne différentiel réceptrice correspondante (formant ainsi un ensemble de paires différentielles, soit huit fils).
Avantages du mode différentiel
En utilisant des signaux différentiels:
Résistance aux bruits
La carte d'extension accroît la porté du bus mais assure également une meilleure immunité du bus I2C face aux bruits.
Pour les "non initiés":
Chaque signal passe sur une paire torsadée (signal+ et signal-) et c'est la différence entre signal+ et signal- qui est utilisé.
Comme la paire signal+ et signal- est torsadée (comme tous les autres signaux du bus différentiels), quand un parasite passe par là, il vient s'ajouter à signal+ comme à signal- (à l'identique quantitativement).
Cela signifie que signal+ sera "augmenté d'une quantité X" et que signal- sera également "augmenté de cette même quantité X".
Comme nous mesurons la différence signal à l'autre bout de la ligne, nous avons toujours la même grandeur mesurée... puisque la quantité parasité ajoutée sur Signal+ est soustraite sur Signal- .
Isolation
Cela permet également d'isoler chacun des périphériques du bus I2C et permet d'éviter les problèmes causés par une capacitance excessive d'un bus I2C traditionnel.
Pour les "non initiés":
Cette capacitance, voyez la comme une "capacité" qui fait une rétention d'énergie qui est libérée progressivement lorsque le signal retombe à Zero. A contrario, une capacité doit également être chargée quand le signal passe au niveau haut (et donc, elle retarde aussi le passage au niveau haut).
L'onde n'est donc plus vraiment carrée... mais surtout la chute/montée de tension n'est plus immédiate et le temps que met la tension à chuter/monté dépend des différentes résistance présentes sur le circuit.
Donc une capacitance plus élevé (capacité parasite) limitera aussi la fréquence maximale utilisable sur le bus... parce qu'il faut plus de temps pour que le signal retombe à zero. Cille le signal doit absolument rester "compréhensible" sur le bus il faudra ralentir la cadence pour que tous le monde (comprenez maître et esclaves du bus) puisse voir et détecter les trames de signaux carrés.
Montage
- Le bus I2C différentiel fonctionne mieux avec une tension d'alimentation 5 V sur VIN (ainsi que pour les signaux SDA/SCL (la broche de donnée/horloge du bus I2C);
- Si votre bus I2C utilise un niveau logique différent (eg: 3.3v), nous vous recommandons d'utiliser un convertisseur de niveau logique (Level Shifter, comme celui-ci).
- La carte n'inclus pas de résistance pull-up sur SDA et SCL. Référez vous à la fiche technique (2MB pdf) pour plus d'information sur l'utilisation de cette carte (pdf, SjtBit).
Utiliser du câble Ethernet
Un câble Ethernet catégorie 5 (ou dit "Cat 5", le raccordement Ethernet le plus courant) contient 4 paires différentielles (paires torsadées).
C'est donc un candidat idéal pour réaliser une connexion entre deux cartes d'extension I2C. SJTbits à testé la carte avec un câble cat 5 sur une distance de 45m et une horloge I2C cadencé 100 kHz.
Où Acheter
Les éléments présentés ici sont disponibles sur le shop.mchobby.be