Le bus I2C - En résumé

Un condensé du bus I2C


A votre avis, quelle est la partie la plus importante de ce projet ?

Moi, je crois bien qu'il s'agisse du bus, il faut en prendre soin, car ce médium fera la pluie et le beau temps. C'est quand même de lui que dépendra la qualité de la transmission et donc la vitesse des modules.

Introduction :

Sans vouloir aller trop loin dans le développement de ce sujet, je vais me contenter dans cette section d'en faire resortir les éléments essentiels, les problèmes trouvé, les trucs à mettre en évidence, etc...
n ce qui concerne la spécification du bus, y'a la doc de PhilipsDocument doc/i2c/I2C_BUS_SPECIFICATION_3.zip not found!(Janvier 2000)

Les vitesses autorisées :

  • Standard à 100 Kbit/s
  • Fast à 400 Kbit/s
  • High Speed à 3.4 Mbit/s

Mais faut pas trop ce faire d'illusion, la plupart des modules travaillent en mode Standard, ce qui est souvent suffisant.

Quelques petits conseils :

  • Evitez d'utiliser du câble téléphonique, les inductions risqueraient de détruire les modules présents sur la ligne.

  • Utilisez du câble blindé de catégorie 5 ou même 6 (les paires y sont blindées séparément).

  • Mettre le SCL et VSS sur une paire, SDA et VSS ou VDD (selon le choix d'une alimentation incluse) sur autre paire.

  • Ne pas oublier les résistances de rappel Rp, pour limiter la capacitance du câble.

  • Ne pas effectuer de dérivation en Y, ça perturberait les transmissions par retour d'ondes.

  • Respecter au maximum le blindage des lignes.

L'utilisation du bus :

Le plus grand problème sur ce bus, c'est de lutter contre deux facteurs dégradant la qualité.

  • La capacité du bus (limité à 400 pF). Solution : Rp ou résistance de rappel (Pull-Up)

  • Les piques de tensions produit par induction. Solution : Rs ou résistance de protection

Dans le cas où la capacité du bus dépasserais cette valeur de 400 pF (modules inclu), il est nécessaire d'utiliser une puce qui aura pour effet d'augmenter son impédance. (voir section Haute Impédance)

Image

L'utilisation en mode Normal :

Généralement, ce bus est utilisé dans des téléviseurs, magnétoscopes, récepteur satellite, voiture, etc...
Donc, on a pas trop de problèmes avec la longueur du cable, qui dépasse rarement quelques mètres.
Mais il faut toutefois faire attention de pas dépasser ce seuil de 400 pF (Environ 20pF par module + celui du cablage)

La principale difficulté, si cela en est une, c'est le calcul des résistances Rs et Rp.
Pour le calcul de Rp, c'est assez simple et très bien expliquer sur la doc du 82B715 Image (96 KB)((Page 7)
Pour le calcul de Rs, c'est moins facile et là, faut se référer à la doc du Bus Image (280 KB) (Page 40)
Au final, le plus dur c'est de connaitre la capacité du cable, car celle des modules est indiqué sur sa documentation, j'essayerais d'éclaircir ce point dans mes prochaines mise à jour de cette page.

Sinon, on branche et normalement :-) çà marche.

L'utilisation en Haute Impédance :

Au dessus de quelques mètres de câble, quand le seuil de 400 pF est dépassé (modules inclu), il faut utilisé un composant spécifique permettant de relier deux points distant.
Semblable à l'utilisation d'un modem, un composant dédier vient effectuer cette tâche, permettant ainsi d'augmenter par 10 son impédance.

  • il est préférable d'utiliser le composant 82B715Image (96 KB)

  • Son branchement ne peux pas être plus simple (2 entrées, 2 sorties, une alimentation)

Image

On retrouve sur ce schéma, deux résistances de tirage (Pull-up), celle-ci se calcul très simplement
(voir page 7 de la doc du 82B715)

Quelques bonnes adresses utiles :

Pour plus de détails voici deux fichiers important donnant toutes les adresses des modules

Par adresse Image (18 KB)   Par allocationImage (18 KB)

Nom Fonction Adresse
A6 A5 A4 A3 A2 A1 A0
... Adresse de communication générale 0 0 0 0 0 0 0
... Adresses Réservées 0 0 0 0 X X X
... Octet de poids fort en adressage 10 bits 1 1 1 1 1 A9 A8
PCD3311/12 Générateur de tonalité (DTMF, modem, musique) 0 1 0 0 1 0 A0
PCF8200 Synthétiseur de paroles 0 0 1 0 0 0 0
PCF8566 Commande d'affichage LCD universelle 0 1 1 1 1 1 A0
PCF8570 RAM statique (256x8) 1 0 1 0 A2 A1 A0
PCF8571 RAM statique (128x8) 1 0 1 1 A2 A1 A0
PCF8572 EEPROM (128x8) 1 0 1 0 A2 A1 A0
PCF8573 Horloge tps réel / Calendrier 1 1 0 1 0 A1 A0
PCF8574 Port d'E/S 8bits 0 1 0 0 A2 A1 A0
PCF8574A Port d'E/S 8bits 0 1 1 1 A2 A1 A0
PCF8576 Commande d'affichage LCD universelle 0 1 1 1 0 0 A0
PCF8577 Commande d'affichage LCD à 64 segments 0 1 1 1 0 1 0
PCF8577A Commande d'affichage LCD à 64 segments 0 1 1 1 0 1 1
PCF8578 Commande d'affichage matricielle LCD 0 1 1 1 1 0 A0
PCF8579 Commande d'affichage matricielle LCD 0 1 1 1 1 0 A0
PCF8582A EEPROM (256x8) 1 0 1 0 A2 A1 A0
PCF8583 Horloge / Calendrier avec RAM statique 1 0 1 0 0 0 A0
PCF8591 Convertisseur A/N et N/A 8 bits 1 0 0 1 A2 A1 A0
SAA1064 Commande de LED à 4 chiffres 0 1 1 1 0 A1 A0
SAA1136 Interface audio PCM 0 0 1 1 1 1 0
SAA1300 Circuit de commutation pour récepteur 0 1 0 0 0 A1 A0
SAA3028 Transcodeur IR (RC-5) 0 1 0 0 1 1 0
SAA4700 Processeur de ligne de donnée VPS 0 0 1 0 0 0 A0
SAA5243/45 Décodeur vidéo texte 0 0 1 0 0 0 1
SAA9020 Contrôleur de mémoire 0 0 1 0 1 A1 A0
SAA9050/51 Décodeur télévision numérique multi-standart 1 0 0 0 1 0 1
SAA9055P/8A Décodeur télévision numérique SECAM 1 0 0 0 1 0 1
SAA9055P/8E Décodeur télévision numérique SECAM 1 0 0 0 1 1 1
SAA9062/63/64 Commande de déviation 1 0 0 0 1 1 0
SAA9068 Commande d'incrustation d'image dans l'image 0 0 1 0 0 1 A0
SAB3035/36/37 Syntonisateur TV 1 1 0 0 0 A1 A0
SAF1135 Décodeur de ligne de données 0 0 1 0 0 A1 A0
ST24C02 EEPROM (256x8) . . . . A2 A1 A0
ST24C04 EEPROM (512x8) . . . . A2 A1 A0
ST24C08 EEPROM (1024x8) . . . . A2 A1 A0
TDA8370 Processeur de synchronisation pour TV 1 0 0 0 1 0 0
TDA8400 Interface pour prédiviseur/synthétiseur 1 1 0 0 0 A1 A0
TDA8405 Pocesseur de son stéréo pour TV 1 0 0 0 0 1 0
TDA8420/21 Processeur audio stéréo 1 0 0 0 0 0 A0
TDA8425 Processeur audio stéréo 1 0 0 0 0 0 1
TDA8440 Commutateur audio/vidéo 1 0 0 1 A2 A1 A0
TDA8442 Interface pour décodeur de couleurs 1 0 0 0 1 0 0
TDA8443A Interface YUV/RGB 1 1 0 1 A2 A1 A0
TDA8444 Octuple convertisseur N/A 6bits 0 1 0 0 A2 A1 A0
TDA8461 Décodeur PAL/NTSC 1 0 0 0 1 0 A0
TEA6000 Syntonisateur FM/FI 1 1 0 0 0 0 1
TEA6300T/10T Commande de volume/tonalité 1 0 0 0 0 0 0
TEA6330 Ampli de régulation 1 0 0 0 0 0 0
TEA6360 Egaliseur 1 0 0 0 0 1 A0
TSA5510(T) Synthétiseur de fréquence 1,3 GHz 1 1 0 0 0 A1 A0
TSA6057(T) Synthétiseur de fréquence à PLL 1 1 0 0 0 1 A0
UMA1000T Processeur pour téléphone sans fil 1 1 0 1 1 A1 A0
UMA1010T Synthétiseur universel pour télécommunication 1 1 0 0 0 0 A0

 

Joomla 1.6 Templates designed by Joomla Hosting Reviews