LTC4311 : un terminateur actif pour bus I2C... fini la galère des long bus.

Ceux d'entre-vous qui utilisent le bus I2C vont apprécier ce billet :-)


LTC4133 : Terminateur actif pour bus I2C

Vous n'avez probablement jamais entendu parlé de terminateur sur le bus I2C... Moi non plus!

Pourtant, si vous avez déjà eu l'occasion d'exploiter un bus I2C relativement long, vous savez qu'il est parfois compliquer de communiquer dessus parce que le signal se déforme.

Source: Adafruit.com

Le signal que l'on pense carré est en fait en aile de requin. Cela ne pose généralement trop de problème tant que le signal n'est pas trop déformé.

Pourquoi le signal se déforme t'il ?

La déformation du signal est provoqué par la capacitance du bus (fil enfermé dans un isolant par rapport à la masse qui est dans autre fil). Plus le bus est long et plus la capacitance est grande.

Etant donné que le bus I2C utilise des résistances pull-up, nous avons là un circuit de type R-C (Résistance + Capacité). Il faut donc que la lignej se charge par l'intermédiaire de la résistance pull-up. C'est la raison de ces flans montant en aile de requin. 

Solution à ce problème

  1. Diminuer la résistance pull-up pour que la capacité de ligne se charge plus vite --> le signal tend à redevenir plus "carré". Mais il est interdit de dépasser 1mA sur esclaves I2C lorsqu'ils forcent l'état de la ligne à la masse (c'est la résistance pull-up qui limite le courant, il y a donc une limite inférieure pour la résistance pull-up).
  2. Placer un terminateur de bus I2C comme le LTC4311 du fabriquant Analog Device

Présentation du LTC4311 d'Analog device

Rien de bien compliqué avec ce composant. Vous continuez à placer vos éléments sur le bus I2C comme avant. Vous ajoutez aussi les résistances pull-up si elles ne sont pas présentes sur vos carte breakout.

Enfin, vous ajoutez le LTC4311 en fin de bus.

Source: Analog Device

Le LTC4311 est un composant actif, dès qu'il détecte un flan montant sur le signal (ligne en rouge), il donne un coup de fouet sur le bus pour reformer un signal carré (en bleu).

Dans la capture d'oscilloscope en début d'article (les ailes de requins), le fait d'ajouter le LTC4311 en fin de bus redresse le signal de façon spectaculaire.

Source: Adafruit

On peut clairement y voir le tout début de courbe en aile de requin puis l'activation du LTC4311 qui crée un flan montant.

Pour finir, un petit schéma de montage... pour démontrer que c'est vraiment simple.

Un excellent composant pour la boite à Maker.


Aucun commentaire