[Numérique] utilité de la resistance de pull dans un µC avec I²C
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

utilité de la resistance de pull dans un µC avec I²C



  1. #1
    cosmoff

    utilité de la resistance de pull dans un µC avec I²C


    ------

    Bonjour,

    je me documente sur le protocole I²C et je ne comprend pas du tout l'utilité des résistances de pull up.

    Premièrement, les tutoriels disent que les sorties des µC sont à collecteur ouvert ce qui me semble faux, car je peux allumer une led directement sans pour autant avoir besoin de résistance de pull up.

    Ensuite, si je veux communiquer avec le protocole I²C sur 2 µC, je dois jouer avec les impédances d'entrés de mon µC en mettant un coup un port en entré TRISA = 1, puis en sortie TRISA = 0, pour faire circuler plus de courant dans un µC que dans un autre ?

    merci d'avance pour vos éclaircissements.

    -----

  2. #2
    PA5CAL

    Re : utilité de la resistance de pull dans un µC avec I²C

    Bonsoir

    Les sorties I2C sont à collecteur ou à drain ouvert, alors que les sorties logiques classiques des micro-contrôleurs ne le sont pas (elles peuvent fournir un courant à l'état haut). La résistance de "pull up" sert à imposer un niveau logique haut (1) quand aucun des circuits connectés à la ligne ne produit de niveau bas (0).

    L'intérêt d'avoir des sorties à collecteur ou drain ouvert est d'autoriser la production simultanée de niveaux différents sur le bus sans provoquer de courts-circuit. La gestion du sens de transmission entre les appareils s'en trouve grandement simplifiée, et les collisions (i.e. quand plusieurs circuits "parlent" en même temps) peuvent être détectées afin d'arbitrer le partage du bus entre plusieurs maîtres (quand un maître produit un 1 alors que la ligne reste à 0, il perd la main).

    En principe, le bus I2C correspond à des entrées-sorties dédiés sur les micro-contrôleurs. Mais on peut, dans une certaine mesure, simuler une entrée-sortie I2C à l'aide d'une entrée-sortie classique :
    - en configurant la broche en sortie et en la portant au niveau bas pour produire un 0,
    - en configurant la broche en entrée (ce qui la passe en haute impédance) afin de produire un 1 et/ou lire l'état de la ligne.
    Dernière modification par PA5CAL ; 12/12/2017 à 18h07.

  3. #3
    cosmoff

    Re : utilité de la resistance de pull dans un µC avec I²C

    merci beaucoup pour tes informations bien expliquées !
    Donc chaque fois qu'un périphérique utilise le protocole I²C, ses ports seront forcément à collecteur ou drain ouvert c'est bien ca ?

    Citation Envoyé par PA5CAL Voir le message
    En principe, le bus I2C correspond à des entrées-sorties dédiés sur les micro-contrôleurs. Mais on peut, dans une certaine mesure, simuler une entrée-sortie I2C à l'aide d'une entrée-sortie classique :
    - en configurant la broche en sortie et en la portant au niveau bas pour produire un 0,
    - en configurant la broche en entrée (ce qui la passe en haute impédance) afin de produire un 1 et/ou lire l'état de la ligne.
    j'ai mal compris tes deux dernieres lignes.
    Quand on configure la proche en sortie et en portant au niveaux bas, c'est comme si on simulait une masse sur cette broche, et donc sur tous les broches des autres périphériques connectés à cette broche l'état logique est de 0 (car ces périphériques sont connectés à la masse)?

    pourquoi en configurant en entré, j'ai une haute impédance qui fait un 1 logique ? car si on fait un pont diviseur de tension, toute la tension va dans cette haute impédance et donc toutes les broches des autres périphériques connectés a cette broche voit l'état logique 1?

  4. #4
    PA5CAL

    Re : utilité de la resistance de pull dans un µC avec I²C

    Citation Envoyé par cosmoff Voir le message
    Donc chaque fois qu'un périphérique utilise le protocole I²C, ses ports seront forcément à collecteur ou drain ouvert c'est bien ca ?
    Tout ce qu'on peut dire, c'est que chaque fois qu'un périphérique utilise un véritable port I2C, ou un véritable port compatible (tel que TWSI ou TWI, l'utilisation de la dénomination I2C posant des problèmes juridiques), celui-ci est forcément à collecteur ou drain ouvert.

    Mais comme je le rappelais, sur un micro-contrôleur ne disposant pas de port I2C par exemple, on peut bricoler logiciellement un port d'entrée-sortie qui n'est matériellement pas à collecteur ou drain ouvert afin qu'il se comporte comme s'il l'était. Toutefois ça reste du bricolage, car même si cela parvient à fonctionner, le résultat ne répond généralement pas totalement à la norme I2C.


    Concernant le protocole, c'est-à-dire la chronologie normalisée des étapes et des signaux, on peut imaginer qu'il puisse être déroulé sur un matériel électriquement différent de ce que préconise la norme I2C.

    Citation Envoyé par cosmoff Voir le message
    Quand on configure la proche en sortie et en portant au niveaux bas, c'est comme si on simulait une masse sur cette broche, et donc sur tous les broches des autres périphériques connectés à cette broche l'état logique est de 0 (car ces périphériques sont connectés à la masse)?
    Oui.

    Citation Envoyé par cosmoff Voir le message
    pourquoi en configurant en entré, j'ai une haute impédance qui fait un 1 logique ?
    Parce qu'un niveau haut est alors imposé par la résistance de "pull up" connectée sur la ligne.

    Citation Envoyé par cosmoff Voir le message
    car si on fait un pont diviseur de tension, toute la tension va dans cette haute impédance et donc toutes les broches des autres périphériques connectés a cette broche voit l'état logique 1?
    L'impédance très élevée de cette entrée la rend pratiquement inexistante pour les autres circuits. Sur la ligne, ces derniers ne "voient" plus que la résistance de "pull up", qui est beaucoup plus faible, et qui impose donc un niveau haut.

    Par exemple, avec une résistance de "pull up" de 2kΩ reliée au 5V, une résistance d'entrée de 100MΩ réalisera un pont diviseur de rapport 100.106/(100.106+2.103)=0,99998, lequel produira théoriquement une tension de 4,9999V pour 5,0000V sur l'alimentation. On voit que ce pont diviseur n'a pratiquement aucun effet, et que la résistance de "pull up" continue clairement d'imposer un niveau haut en présence de l'entrée à haute impédance.
    Dernière modification par PA5CAL ; 13/12/2017 à 11h14.

  5. A voir en vidéo sur Futura
  6. #5
    cosmoff

    Re : utilité de la resistance de pull dans un µC avec I²C

    Citation Envoyé par PA5CAL Voir le message
    On voit que ce pont diviseur n'a pratiquement aucun effet, et que la résistance de "pull up" continue clairement d'imposer un niveau haut en présence de l'entrée à haute impédance.
    pour moi vu que la tension aux bornes de la resistance de pull up = 0.0001V, alors le pont diviseur de tension à un grand effet vu que toute la tension est dirigé sur la résistance de haute impédance. Et c'est donc la haute impédance qui impose son niveau logique non ?

  7. #6
    jiherve

    Re : utilité de la resistance de pull dans un µC avec I²C

    Bonjour
    L'explication de Pa5cal est évidement juste et la tension qui compte c'est celle entre la masse et le "fil" I²C .
    Par ailleurs une haute impédance/résistance n'impose rien car c'est équivalent à un état "Z" (tri state) qui perd à tout les coup vis avis des états "H" ,"L" imposés par les pull up ou les autres périphériques.
    A noter que pour que la liaison fonctionne correctement il faut en général des résistance de pull up n’excédant pas qqs kohm.
    JR
    l'électronique c'est pas du vaudou!

Discussions similaires

  1. Résistance de pull down ?
    Par dje8269 dans le forum Électronique
    Réponses: 10
    Dernier message: 16/07/2014, 13h57
  2. Question sur l'utilité de ground et résistance dans ce circuit?
    Par anouarattn dans le forum Électronique
    Réponses: 2
    Dernier message: 26/03/2013, 22h54
  3. résistance pull up/pull down?
    Par invite4b61c3b1 dans le forum Électronique
    Réponses: 3
    Dernier message: 31/10/2008, 14h47
  4. Resistance de Pull up sur un 74LS75
    Par allergen dans le forum Électronique
    Réponses: 1
    Dernier message: 18/06/2007, 18h17
  5. Résistance de Pull-Up
    Par invitee2756343 dans le forum Électronique
    Réponses: 12
    Dernier message: 20/03/2007, 17h24
Découvrez nos comparatifs produits sur l'informatique et les technologies.