"Carte I2C"
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

"Carte I2C"



  1. #1
    Etudiant007

    "Carte I2C"


    ------

    Bonjour,

    Débutant en info indus je rencontre quelques difficultés avec le protocole I2C, c'est pourquoi je viens quérir un petit coup de main . Dans mon projet j'ai
    besoin de faire communiquer une carte Xeva uC-80C552 et une carte "I2C" contenant un clavier classique, qui doit pouvoir communiquer avec la carte via un
    port parallèle de type PCF8574.
    Pour ce faire j'ai pensé décomposer tout le travail en créant des fonctions d'envoi d'un octet et de lecture d'octet pour simplifier ensuite l'écriture de fonctions
    plus "complexes", pour moi en tout cas, qui servirons pour l'envoi et la réception de donnée depuis le périphérique I2C. J'ai recueillit plusieurs informations sur ce protocole, notamment le processus de communication: 1/un start 2/envoi de donnée (fonction envoi octet) 3/ une ACK 4/et un stop, avec dans ce cas le
    UC en tant que maître.
    Je me suis renseigné sur ce protocole I2C via des forums, cours, vidéo, donnée constructeur ... mais malgré ces efforts je ne pense pas y arriver tout seul,
    donc si quelqu'un de sympatoche pouvait me donner un petit coup de main pour me lancer ça serait cool. Merci.

    Un étudiant en galère.

    -----

  2. #2
    Etudiant007

    Re : "Carte I2C"

    Je n'ai pas préciser que j'était vraiment débutant rien ne me destinait à faire de l'électronique je suis vraiment tomber dessus par hasard donc ce qui peut
    sembler évident pour vous ne l'est pas forcément pour moi.
    PS: je programme en C.

  3. #3
    Murayama

    Re : "Carte I2C"

    Bonjour!

    I2C, ce n’est pas très compliqué, mais ce n’est pas non plus très standard,
    donc il faut en premier lieu regarder le timing dans la doc et essayer de faire pareil,
    un oeil sur l’oscillo, un sur le clavier et un dans la doc.

    Par pas standard, je veux dire que tout dépend du composant. Exemple: sur une EEPROM
    24C01 ou 02, il n’y a qu’un byte d’adresse alors que sur les plus grandes, il y en a 2. Ou 3.
    Et aussi suivant les composants, le timing demande un ACK ou un NACK. C’est assez variable.
    Dans la plupart des cas, les microcontrôleurs sont équipés de I2C. Mais ça ne veut pas dire
    que tout est fait, il vous faut construire la trame I2C qui va bien. En principe on
    démarre par une condition start, puis on envoie l’adresse du composant avec ou sans le bit
    de READ, puis l’adresse du registre à lire ou écrire. Puis un restart dans le cas d’une
    lecture, etc, etc. Bref, sans plus d’info, il est difficile de vous aider. Et même
    avec plus d’infos, je pense qu’il y aura beaucoup de réticents à faire vos devoirs.

    Hint: chechez un code C qui vous permet de lire dans une EEPROM 24cxxx. Il n'y a aucune
    chance pour qu'il fonctionne pour votre application, mais au moins ça vous donnera une
    idée de comment démarrer.

    NB: Il est également possible de tout faire avec un port ordinaire si le processeur n'a pas de
    I2C. Ça s'appelle du "bit banging".

    Pascal

Discussions similaires

  1. "fondamentales", "dures", "molles" ... : comment classer les sciences ?
    Par Arvirik dans le forum Epistémologie et Logique (archives)
    Réponses: 13
    Dernier message: 22/04/2017, 22h41
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...