Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 41

Port entrée/Port sortie via I²C



  1. #1
    ico

    Wink Port entrée/Port sortie via I²C


    ------

    Bonjour tout le monde.
    Je suis à la recherche d'indications concernant des composants faisant soit office de port d'entrée, soit de port de sortie via l' emploie du protocole I²C.

    En scrutant sur le net j'ai remarqué qu'un composant nommé PCF 8574A remplissait ce rôle. Cependant son électronique ne me convient pas. Effectivement il faut utilisé un composant interface pour inversé ses sorties et du coup cela ne me va plus ni en entrées ni en sorties.

    De plus j'ai un autre souci au niveau de l'emploie en entrée. Lorsque on effectue la séquence, depuis le pic16F876 monté en master:

    -Le master fait un bit-start (S)
    -Le master envoie l'adres:se du composant sur 7 bits
    -Le master ajoute le bit R/W à 1 pour les entrée
    -Le master attend l' (ACK)
    -Le master attend les 8 bits du composant distant et place ces 7 bits dans une variable
    -Le master attend l' (ACK)
    -Le master fait un stop-bit (SB)
    -Le master compare les 8 bits qui sont dans la variable
    -Ca correspond à ce que l'on attend, on traite le cas et on boucle
    -Ca ne correspond pas à ce que l'on attend, on boucle au début

    Question1 -> Quels composant sont susceptible de pouvoir joué le rôle d'entrée / sortie sous 8 bits et de prendre en compte le protocole I²C ?
    Question2 -> Comment sont retourné les bits ?
    Question3 -> Comment faire la comparaison en assembleur ?

    Je vous remercie pour vos précisions.
    Ico

    -----

  2. Publicité
  3. #2
    DAUDET78

    Re : Port entrée/Port sortie via I²C

    Citation Envoyé par ico Voir le message
    'un composant nommé PCF 8574A remplissait ce rôle. Cependant son électronique ne me convient pas. Effectivement il faut utilisé un composant interface pour inversé ses sorties et du coup cela ne me va plus ni en entrées ni en sorties.
    C'est ton soft qui détermine si tu mets un "1" ou un "0" ! C'est quoi ce blabla d'inversion en sortie ?????
    Par contre, ce qui est sûr, c'est qu'en sortie tu n'as pas beaucoup de jus et qu'on place souvent un NPN ou un NMOS pour attaquer un moteur ou un relais.
    En entrée, une PullUP et un contact et basta .....
    J'aime pas le Grec

  4. #3
    ico

    Re : Port entrée/Port sortie via I²C

    En fait par défaut, mes capteurs envoie un 0V et passe à +5 si il ont à indiqué une présence. il faudrais que j'intercale un composant pour inversé ce signal ce qui m'oblige à revoir l'ensemble de mes pcb et ca ne me va pas d'un poil.

  5. #4
    DAUDET78

    Re : Port entrée/Port sortie via I²C

    C'est ton SOFT qui détermine si il lit un "1" ou un "0" comme signal actif !!!
    J'aime pas le Grec

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

    Re : Port entrée/Port sortie via I²C

    Je suis bien d'accord avec ca mais au niveau de l'électronique, il en est autre me semble-t-il!

  8. #6
    DAUDET78

    Re : Port entrée/Port sortie via I²C

    C'est quand même plus simple de faire ça par soft (que tu es en train d'écrire) que par hard !
    Pourquoi faire simple quand on peut faire compliquer !
    J'aime pas le Grec

  9. Publicité
  10. #7
    ico

    Re : Port entrée/Port sortie via I²C

    Par ce que mes capteurs sont déjà créer et opérationnels tout simplement.
    Quand au code, je le ferais en conction de l'interafaçage I²C et non l'inverse.

    Je procède toujours ainsi:
    1) Capteurs
    2) Interfaçage (j'en suis la personnellement)
    3) I²C (Pour gagner du process et des pins sur l' uC)
    4) Codage du Pic au plus proche de la demande

  11. #8
    DAUDET78

    Re : Port entrée/Port sortie via I²C

    Bon, j'ai rien pigé au raisonnement ... je suis trop bête, bye!
    J'aime pas le Grec

  12. #9
    ico

    Re : Port entrée/Port sortie via I²C

    Roh lala!
    J'ai jsute indiqué ce que je fesait et à quel étape je me plaçais!
    Tu n'est pas bête loin de la!
    J'ai même eu la chance de faire les tests par 1 ou par 0 avec le code, la n'est pas le problème, j'en convient.
    Mais il faut bien que je parte de quelque part et c'est des capteurs que j'ai choisit de partir.

    Capteur -> [Composant interface genre PCF 8574A] -> I²C

    Plus tard:

    I²C -> Pic 16F876 -> code en assembleur

    Dans un premier temps quels composant peut remplir le rôle d'entrée, lequel permet de faire des sorties le tout depuis l' I²C ?

    Pour le reste on en reparlera plus tard je pense!

  13. #10
    DAUDET78

    Re : Port entrée/Port sortie via I²C

    Le PCF 8575 et le PCF 8574A et le PCF 8574 et basta .... la messe est dite !
    J'aime pas le Grec

  14. #11
    ico

    Re : Port entrée/Port sortie via I²C

    Ok!
    Au moins on est clair sur ce point
    Bon ensuite ma question N°2 héhé ,
    les bits sont retourné ainsi b'00000001' ou autrement dans le PIC ?

  15. #12
    lil-vince

    Re : Port entrée/Port sortie via I²C

    Salut,

    Qu'est ce que tu entends par "retourné"?

    Et comme Daudet je ne comprend pas pourquoi tu veux inverser les signaux de tes capteurs?

  16. Publicité
  17. #13
    microchip

    Re : Port entrée/Port sortie via I²C

    Bonsoir,

    Il existe d'autre composants pour étendre les ports d'E/S par une liaison I2C comme les MCP2301x
    Here to help ;=)

  18. #14
    Gérard

    Re : Port entrée/Port sortie via I²C

    Bonjour,
    1 +, contact, pull down, masse
    2 +, pullup, contact, masse

    Le PCF branché à la jonction contact/résistance.

    Si contact actionné
    dans le cas 1 : on verra un "1"
    dans le cas 2 : on verra un "0"

    Pas de quoi retourner un bit !

  19. #15
    ico

    Re : Port entrée/Port sortie via I²C

    Citation Envoyé par Gérard Voir le message
    Bonjour,
    1 +, contact, pull down, masse
    2 +, pullup, contact, masse

    Le PCF branché à la jonction contact/résistance.

    Si contact actionné
    dans le cas 1 : on verra un "1"
    dans le cas 2 : on verra un "0"
    Je comprend un peux mieux.
    L'emploie d'un MCP2301x serais effectivement plus simple pour mon hardware mais je ne comprend pas cette phrase.
    Citation Envoyé par Gérard Voir le message
    Pas de quoi retourner un bit !
    Pourriez-vous m'en dire plus à ce sujet s'il vous plait?

  20. #16
    Gérard

    Re : Port entrée/Port sortie via I²C

    Citation Envoyé par ico Voir le message
    Je comprend un peux mieux.
    L'emploie d'un MCP2301x serais effectivement plus simple pour mon hardware mais je ne comprend pas cette phrase.
    Bonjour,
    Le MCP23016 n'est pas plus simple que le PCF.
    Il travaille sur 16 I/O, le PCF sur 8.

    Citation Envoyé par ico Voir le message
    Pourriez-vous m'en dire plus à ce sujet s'il vous plait?
    Ceci en référence à la question2 du post#1.
    C'est TOI qui veux retourner les bit !

    De plus, le post #11 est incompréhensible.

  21. #17
    ico

    Re : Port entrée/Port sortie via I²C

    Donc il faudrait que j'en reste au pcf... ok
    Si l'emploi d'un tcf en port d'entrée, comment sait-on qu'une entré est active? (présence d'un +5V sur une pin, 0V sur les autre j'entend)

  22. #18
    Gérard

    Re : Port entrée/Port sortie via I²C

    Citation Envoyé par ico Voir le message
    Donc il faudrait que j'en reste au pcf... ok
    Si l'emploi d'un tcf en port d'entrée, comment sait-on qu'une entré est active? (présence d'un +5V sur une pin, 0V sur les autre j'entend)
    C'est quoi un tcf ?

    Une entrée n'est pas "active", elle est soumise à un état (ou une tension).

    C'est toi qui définit l'état de repos comme expliqué plus haut.
    Tu connais donc l'état de repos, après une lecture, tu verras s'il y a changement.

  23. Publicité
  24. #19
    ico

    Re : Port entrée/Port sortie via I²C

    Pour l'istoire du tcf; je parlait du PCF 8574A.
    Pour en venir au changement d'etat; comment procédé :
    -Faire un test par comparaison d'un bit entier ?
    -Ou bien il existe une methode particulière ?

    Cordialement.

  25. #20
    Gérard

    Re : Port entrée/Port sortie via I²C

    Méthode (pas) particulière : utiliser la broche appelée INT.

  26. #21
    ico

    Re : Port entrée/Port sortie via I²C

    Effectivement c'est une methode.
    Toutefois j'avait vue, pour les essais, une autre solution:
    -le master interroge le composant utilisé en entrée
    -le master compare avec 00000001 = cas1, traiter
    -le master compare avec 00000010 = cas2, traiter
    -le master compare avec 00000100 = cas3, traiter
    -boucler

    donc pas besoin de la broche int, pour le moment.

  27. #22
    lil-vince

    Re : Port entrée/Port sortie via I²C

    C´est a toi de voir, tout dépend du temps de réponse que tu souhaites...

  28. #23
    Gérard

    Re : Port entrée/Port sortie via I²C

    Citation Envoyé par ico Voir le message
    Effectivement c'est une methode.
    Toutefois j'avait vue, pour les essais, une autre solution:
    -le master interroge le composant utilisé en entrée
    -le master compare avec 00000001 = cas1, traiter
    -le master compare avec 00000010 = cas2, traiter
    -le master compare avec 00000100 = cas3, traiter
    -boucler

    donc pas besoin de la broche int, pour le moment.
    Bonjour,

    Avec 8 bit, tu as 256 cas ... (de 0 à FFh)
    Bonjour la durée.

    A moins que tu sois sur de n'avoir à chaque fois qu'un seul bit qui change.

  29. #24
    ico

    Re : Port entrée/Port sortie via I²C

    Effectivement, je ne fait que traiter des entrée connu.

    La j'ai donné le cas le plus basique. Je dispose de deux capteurs pour vérifier qu'au sol on ne dépasse pas la bande noire. 3 cas se pose alors.
    -Soit le capteur 1 et 2 ont franchit la bande -> 00000011
    -Soit le capteur 1 a franchit la bande -> 00000001
    -Soit le capteur 2 a franchit la bande -> 00000010

    Si on a le cas 1, le system fait reculer puis pivoter et repart...
    Si on a le cas 2, le system fait pivoter dans le sens oposé du capteur et rapart...
    idem pour le cas 3 mais dans l'autre sens.

  30. Publicité
  31. #25
    Gérard

    Re : Port entrée/Port sortie via I²C

    Citation Envoyé par ico Voir le message
    Effectivement, je ne fait que traiter des entrée connu.

    La j'ai donné le cas le plus basique. Je dispose de deux capteurs pour vérifier qu'au sol on ne dépasse pas la bande noire. 3 cas se pose alors.
    -Soit le capteur 1 et 2 ont franchit la bande -> 00000011
    -Soit le capteur 1 a franchit la bande -> 00000001
    -Soit le capteur 2 a franchit la bande -> 00000010

    Si on a le cas 1, le system fait reculer puis pivoter et repart...
    Si on a le cas 2, le system fait pivoter dans le sens oposé du capteur et rapart...
    idem pour le cas 3 mais dans l'autre sens.
    Tu as donc la solution.

    Si tu fais trop souvent une interrogation du PCF, tu perds du temps,
    si tu ne fais pas, tu risques de louper des changements --> INT.

  32. #26
    ico

    Re : Port entrée/Port sortie via I²C

    Je suis bien d'accord.
    Mais niveau code de retour (ce qui revient du port d'entrée), on effectue comment la comparaison en assembleur ?

  33. #27
    Gérard

    Re : Port entrée/Port sortie via I²C

    Au repos, tu as soit "0" soit "1" sur toutes les entrées.
    Après lecture, tu compares l'octet lu avec 0 ou avec 255 suivant la cas.

  34. #28
    ico

    Re : Port entrée/Port sortie via I²C

    Ah wai donc c'est simple.
    En asm, ca ressemble a quoi? (pour infos)

  35. #29
    Gérard

    Re : Port entrée/Port sortie via I²C

    Citation Envoyé par ico Voir le message
    Ah wai donc c'est simple.
    En asm, ca ressemble a quoi? (pour infos)

    Pour info : je ne travaille plus en asm.
    Bigo pourra t'aider, dans son cours N°1 tu trouveras la solution.

  36. #30
    ico

    Re : Port entrée/Port sortie via I²C

    C'est ce que j'ai faillit ajouter; mais trop tard!
    Pour l'heure j'attend mes PCF que j'ai commander.
    Je ferais un est de tout ca et je demanderais de l'aide pour le code au coup par coup.
    Merci d'avoir pris le temps d'échanger avec moi sur ce sujet.
    Cordialement.

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. PIC en language C : pin d'un port en entree ...??
    Par guilbut dans le forum Électronique
    Réponses: 6
    Dernier message: 02/09/2008, 08h05
  2. Probleme lecture entrée port parallele
    Par yoann26 dans le forum Électronique
    Réponses: 20
    Dernier message: 26/03/2008, 21h30
  3. port audio sortie entré
    Par yann.ld dans le forum Matériel - Hardware
    Réponses: 4
    Dernier message: 15/06/2007, 16h33
  4. pic reduire le nombre de port en sortie
    Par nicolasronan dans le forum Électronique
    Réponses: 2
    Dernier message: 20/05/2006, 09h27
  5. Tension en sortie du port parallele
    Par korb_n dans le forum Électronique
    Réponses: 7
    Dernier message: 19/10/2005, 18h35
Découvrez nos comparatifs produits sur l'informatique et les technologies.