Partage
  • Partager sur Facebook
  • Partager sur Twitter

Bus I2C

    31 mai 2013 à 18:47:41

    Bonjour, 

    ma question est assez simple, "comment fonctionne un bus I2C ?". On ma posé la même question et je n'est pas su répondre de manière assez simple pour qu'une personne qui ne connait rien en informatique puis comprendre. Quelqu'un aurait-il une réponse simple est synthétique ? 

    -
    Edité par nadjim93 31 mai 2013 à 18:53:16

    • Partager sur Facebook
    • Partager sur Twitter
      31 mai 2013 à 19:49:52

      Hum, tu veux simple comment ?

      Que penses tu de cela :

      =====

      Il s'agit d'un bus permettant d'échanger des données entre plusieurs systèmes numérique.

      Généralement, ce type de bus sert à connecter un micro-controlleur à plusieurs périphériques tel que des afficheurs, des capteurs, ...

      -----

      Ce bus se compose de 2 fils :

      - SDA : qui sert à transmettre les données

      - SCL : qui sert à transmettre une horloge permettant la synchronisation entre les 2 systèmes échangeant des données.

      Les systèmes étant numérique, ces fils ne transmettent que des niveaux logiques binaire :

      - pour transmettre un '0', le périphérique connecte le fil à la ligne de masse (Gnd)

      - pour transmettre un '1', le périphérique ne fait rien et une résistance dite de pull-up se charge d'élever la tension de la ligne au niveau de la tension d'alimentation (Vcc)

      -----

      Par défaut, les 2 fils sont au niveau logique '1' grâce à la résistance de pull-up.

      Pour commencer à transmettre des données, un périphérique met la ligne SDA à l'état '0'.

      En détectant ce passage à '0', les autres périphériques savent qu'ils vont alors recevoir des données.

      Après avoir passé la ligne SDA à l'état '0', le périphérique émetteur génère un signal d'horloge sur la ligne SCL en passant alternativement la ligne de '0' à '1' et vice versa.

      Grace à cette alternance, les autres périphériques peuvent se synchroniser à la même vitesse que le périphérique émetteur.

      Il ne reste alors plus qu'au périphérique émetteur d'envoyer les bits qu'il souhaite transmettre un à un sur la ligne SDA.

      =====

      Voila voila,

      C'est la base :)

      Après, il faut enchainer sur :

      - le formattage des données à transmettre (à savoir: RW, SlaveAddr, Data)

      - l'acquitement sur SDA

      - l'inversion du sens de transmission en continuant à émettre un signal d'horloge sur SCL

      ...

      Ou alors : WIKIPEDIA :D

      -
      Edité par lorrio 31 mai 2013 à 19:52:03

      • Partager sur Facebook
      • Partager sur Twitter
        31 mai 2013 à 21:33:05

        Je te remercie c'est une trés bonne description qui est a la porté de tout le monde :). Mais le Bus I2C n'a pas 3 file avec le file de masse ?
        • Partager sur Facebook
        • Partager sur Twitter
          31 mai 2013 à 21:45:30

          Hum, ça dépend du point du vue.

          Pour savoir quelle est le niveau logique d'une ligne, il faut en effet un niveau de comparaison.

          Ce niveau de comparaison, c'est la masse.

          Sauf qu'un bus I2C ne sort généralement jamais de la carte électronique sur laquelle il est utilisé.

          Du coup, vue que sur une carte, la masse est présente plus ou moins partout, on a tendance à l'oublier :)

          Mais c'est sur que si tu alimentes le micro avec une alim flottante et le périphérique avec une autre alim flottante sans relier les masses des 2 alims, alors le système ne fonctionnera pas ;)

          =====

          Après, pour expliquer les changements d'états et leur signification, le mieux, c'est de le faire avec un petit schéma.

          Par exemple, imprimes le haut (SDA et SDL) de cette image avant de te lancer ;)

          -
          Edité par lorrio 31 mai 2013 à 21:51:53

          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            1 juin 2013 à 1:15:14

            Et sinon, quel est le rapport avec le C++ ? :D
            • Partager sur Facebook
            • Partager sur Twitter
              1 juin 2013 à 11:28:46

              J'ai déplacé vers Electronique,tu aurra peut être plus d'avis complémentaires ici

              • Partager sur Facebook
              • Partager sur Twitter
                1 juin 2013 à 18:20:48

                Je vous pris de m'excusé je n'avais pas fait attention
                • Partager sur Facebook
                • Partager sur Twitter

                Bus I2C

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown