Forum Électro-Bidouilleur

Merci de vous connecter ou de vous inscrire.

Connexion avec identifiant, mot de passe et durée de la session
Recherche avancée  

Nouvelles:

Le Forum est maintenant chiffré (préambule https). Bien sûr, des liens externes insérés dans les sujets vont demeurer inchangés. Mais la composition des pages du Forum est désormais sécurisée. Si des problèmes d'affichage surviennent, veillez à vider votre cache pour ce site.

Auteur Sujet: Question de calcul de résistance sur bus I2C  (Lu 2817 fois)

thanat0s

  • Newbie
  • *
  • Messages: 30
    • Voir le profil
Question de calcul de résistance sur bus I2C
« le: juillet 02, 2020, 04:21:50 pm »

J'ai découvert dans la video EB_#389 Projet - Interface PC pour Voltmètre Fluke 8920A, Partie 4: Schéma et Mécanique (6:09) la necessité de poser une résistance sur le bus I2C (sda) entre "N" devices pour éviter des pbm de surcharge si plusieurs devices parlent en meme temps (si j'ai bien compris).

Cependant EB, parle d'une valeur "basse :)". Est-ce que quelqu'un pourrait m'indiquer comment on calcul la dite resistance notament sur un bus avec plusieurs devices I2C.

Faut t'Il s'assurer de rester en tous cas dans le courant max des devices I2C comme ici pour un BMP280 IDDT ?
https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bmp280-ds001.pdf

C'est obscur :)

IP archivée

Yffig

  • Invité
Re : Question de calcul de résistance sur bus I2C
« Réponse #1 le: juillet 02, 2020, 05:15:46 pm »

Bonsoir,

Le bus I²C a subi qq variantes au cours du temps avec l'augmentation de sa vitesse de transfert. La recommandation de Bertrand concerne (je pense) plus particulièrement les versions "Haute Vitesse": Fm, Fm+ et UFm (éventuellement mixées avec la standard).
Pour savoir de quoi il en retourne, il vaut mieux s'adresser à  NXP (anciennement Philips) qui est la source du standard industriel:
https://www.nxp.com/docs/en/user-guide/UM10204.pdf
Au §5 (page 35 et +) sont décrites les différentes vitesses du bus, puis en page 37 avant dernier §, la possibilité (ie option) de résistances série Rs sur les lignes SDA et SCL. Pas de valeurs précises ou de calculs ne sont donnés, Bertrand de son côté parle de "bonnes pratiques" (doux euphémisme pour signifier qu'il vaut mieux en mettre sans que l'on sache trop pourquoi, ni comment les calculer...). La valeur qu'il prend est de 220 Ω... valeur suffisamment faible pour que les capacités grille source des MOS (et de câblage) n'influent pas trop sur le temps de montée/descente des signaux et suffisamment élevée pour que la mise en conflit de deux sorties (cas SDA) ne soit préjudiciable à  l'un ou l'autre des boîtiers.
[EDIT 03/07]: page 58, § 7.3 NXP est plus loquace sur la valeur de ces Rs en prenant une valeur typique de 300 Ω et  tu as aussi un graphe des valeurs max en fonction des résistances de Pull-up Rp et de la tension d'alim.

(A titre personnel, je pratique (et je ne suis pas le seul...) la mise en // de 2 ou 3 portes CMOS type 74HC14 à  10 MHz sans aucun pb parce que je sais que les Rds-ON de ces boitiers sont de plusieurs 10-aines d'Ω, mais on peut préférer assurer surtout quand l'un de ces périphériques est soit cher soit difficile à  remplacer !)

Bonne soirée

Yffig
« Modifié: juillet 03, 2020, 05:52:57 am par Yffig »
IP archivée

Électro-Bidouilleur

  • Administrator
  • Hero Member
  • *****
  • Messages: 929
  • C'est moi le boss!
    • Voir le profil
    • Site Web Électro-Bidouilleur
Re : Question de calcul de résistance sur bus I2C
« Réponse #2 le: juillet 04, 2020, 10:58:31 pm »

J'ai découvert dans la video EB_#389 Projet - Interface PC pour Voltmètre Fluke 8920A, Partie 4: Schéma et Mécanique (6:09) la necessité de poser une résistance sur le bus I2C (sda) entre "N" devices pour éviter des pbm de surcharge si plusieurs devices parlent en meme temps (si j'ai bien compris).
Sur un bus i2c "parfait" (rencontrant toutes les spécifications), on n'a pas à  ajouter cette résistance série sur SDA car les deux extrémités ont une sortie à  drain ouvert; il n'y a pas de risque de conflit de courant car le seul niveau fort est le niveau bas, et le niveau haut est provoqué par des résistances pullups. Mais on voit beaucoup de bus i2c "simulés" par micro-contrôleur, et donc n'ayant pas cette sortie à  drain ouvert. Pour ne pas prendre de risque, je préfère ajouter une résistance en série, juste au cas... Yffig a bien expliqué le compromis de valeur choisie.
IP archivée

thanat0s

  • Newbie
  • *
  • Messages: 30
    • Voir le profil
Re : Question de calcul de résistance sur bus I2C
« Réponse #3 le: juillet 14, 2020, 02:26:51 pm »

Merci messieurs voila qui me rassure :)
IP archivée