Pcf8574
Répondre à la discussion
Affichage des résultats 1 à 24 sur 24

Pcf8574



  1. #1
    grd666

    Pcf8574


    ------

    bonjour,
    j'ai une question auquel je ne vois pas de logique. Cela fait deux ans que j'utilise un PCF8574 :
    http://www.datasheetcatalog.org/data.../PCF8574_4.pdf
    il se trouve que la broche 12 P7 reste au niveau logique 1 comme l'an passé. C'est une broche que j'utilise pour commander un afficheur en I2C du coup j'ai du passé sur la broche P3.
    Pourquoi ne peut on commander la broche P7? Mon programme n'a rien avoir la dedans elle est par défaut au niveau logique 1 et je n'ai jamais réussit à la faire passé à 0(et elle n'est pas relié au +5v non plus).
    J'ai joint le montage qui fonctionne à merveille si P3 est relié sur le LCD à la place de P7.
    Merci de vos lumières

    -----
    Images attachées Images attachées  

  2. #2
    DAUDET78

    Re : Pcf8574

    J'y connais rien en PIC, mais c'est typiquement une erreur de registre.
    P7 n'est pas multi-fonction ?
    J'aime pas le Grec

  3. #3
    grd666

    Re : Pcf8574

    le pcf8574 n'est pas un pic c'est juste un multiplexeur I2C.

  4. #4
    invite7a49d0d5

    Re : Pcf8574

    hi,

    en effet, ça parait trés bizarre...
    t'as tésté avec d'autres Pcf8574 ?

    vede
    ;O]

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

    Re : Pcf8574

    Citation Envoyé par grd666 Voir le message
    le pcf8574 n'est pas un pic c'est juste un multiplexeur I2C.
    Autant pour moi .... et une de plus pour mon bêtisier !
    J'aime pas le Grec

  7. #6
    Qristoff
    Animateur Électronique

    Re : Pcf8574

    Bonjour,
    d'aprés la datasheet, aprés la mise sous tension, les sorties sont à 1 via la source de courant de 100µA. Lorsque vous programmer 0 dans tout le registre, est ce la seule sortie à rester à 1 ?
    Le bit 7 est le premier pris en compte dans la trame aprés le START. As tu vérifié au scope le signal d'horloge et la data juste aprés le START comme sur la figure 16 de la datasheet ?
    Tout existe, il suffit de le trouver...!

  8. #7
    grd666

    Re : Pcf8574

    Oui en mettant toutes les lignes à 0 P7 est la seule à rester a 1.
    Bon c'est peut être une erreur de programme mais j'en doute,sinon je vois pas pourquoi j'aurais réussit à passer les autres à 0. Et l'an passé je pensais que c'était le composant qui étais mort mais voilà sa refait pareil cette année alors j'aimerais savoir pourquoi.
    Daudet tu auras appris une chose de plus.

  9. #8
    Qristoff
    Animateur Électronique

    Re : Pcf8574

    comment est piloté la ligne I²C ? par un module SSP (I²C, SPI) ou par émulation soft ?
    Tout existe, il suffit de le trouver...!

  10. #9
    Gérard

    Re : Pcf8574

    As-tu fait des essais avec un autre PCF ?

  11. #10
    grd666

    Re : Pcf8574

    Nan je n'est pas testé cette année avec un autre pcf mais si on considère que l'an passé sa à fait la même chose on peut dire que oui.
    Et si les pcf sont de la même série alors la je suis un chat noir parce que je ne le utilise pas dans la même région que l'an passé.
    Et oui l'i2 c'est par soft, si il fonctionnais pas j'arriverais pas afficher ce que je veux sur l'afficheur. Et je doute le problème soit après la mise sous tension d'attendre un peu vu que en programmant en mode debuger sa le fait aussi et je ne lançais pas l'ouverture de l'i2c en un clin d'œil.

    Ce qui n'est pas logique c'est que en remplaçant P7 par P3 sa fonctionne.

  12. #11
    Qristoff
    Animateur Électronique

    Re : Pcf8574

    Bonjour,
    le bit p7 est le premier dans la trame. si la chronologie n'est pas respectée sur les temps de hold ou de setup par rapport à SCK aprés la condition de start (par exemple, le signal SDA ne redescend pas suffisament vite) la donnée p7 peut être érronée et toujours interpretée comme un 1 et sans affecter les suivants. C'est ce qu'il faudrait vérifier au scope...
    Tout existe, il suffit de le trouver...!

  13. #12
    invite42dae262

    Re : Pcf8574

    Bonjour, j'ai aussi réalisé un afficheur LCD I2C ( comme quoi tout le monde pense a la même chose ... ).

    J'ai fait un petit dossier pour expliquer comment il fonctionne : Réalisation d'un afficheur LCD I2C

    Quelques conseils , n'oublie pas que tu est en mode 4 bits , et tu ne contrôle pas seulement E mais tout un port ( donc tu devras faire des masque ) ...

    Bon courage .

  14. #13
    grd666

    Re : Pcf8574

    Qristoff donc si je respecte pas la trame le bit P7 serait à un d'après toi mais en remplaçant par le P3 sa devrait faire pareil alors nan?C'est ça que je pige pas si c'était un problème de tempo l'autre donnée sur P6 devrait aussi être fausse puisque je ne programme plus P7.

    paterson je te remercie mais mon I2c fonctionne parfaitement puisque sur mon afficheur j'affiche ce que je veux mon problème c'est juste la broche P7.

  15. #14
    invite03481543

    Re : Pcf8574

    Bonjour,

    visiblement le soucis est au niveau du programme, la broche P7 n'a rien de plus que les autres.
    Vérifie dans ton soft si tu fais des décalages de bits ou des masques par exemple.
    A+

  16. #15
    grd666

    Re : Pcf8574

    Bonjour,
    Bien oui je fais tout cela correctement
    bon la balise code marche pas ce matin:
    je vais juste posté deux petites fonction ou tu vois bien
    /////////////
    void write_io_8574(char data)//fonction qui écrit les données sur le pcf8574
    {
    StartI2C(); //appel a la fonction pour démarer la comunication I2C
    WriteI2C(PCF5);//la premiere données qu'on écrit est l'adresse du composant
    WriteI2C(data | PCF5<<1);//ensuite on envoit les données
    StopI2C();//on arrête la communication I2C
    }
    //////////////
    //void lcd_write( unsigned char c,char data7 )
    void lcd_write( unsigned char c)
    {
    lcd_data = (c << 4) & 0xf0;
    lcd_e = 1;
    //write_io_8574(lcd_rw <<1 | lcd_rs <<2 | lcd_e | data7<<3 | lcd_data );
    write_io_8574(lcd_rw <<1 | lcd_rs <<2 | lcd_e | lcd_data );
    lcd_e = 0;
    //write_io_8574(lcd_rw <<1 | lcd_rs <<2 | lcd_e | data7<<3 | lcd_data );
    write_io_8574(lcd_rw <<1 | lcd_rs <<2 | lcd_e | lcd_data );
    }
    ///////////////
    dans cette deuxième fonction les commentaires sont ce que je remplace si P7 marche pas

  17. #16
    Qristoff
    Animateur Électronique

    Re : Pcf8574

    Bonjour,
    si le signal SDA reste trop longtemps à 1 (jusqu'au front montant suivant de SCK), le bit 7 est programmé à 1 et non pas à la valeur souhaitée. Ensuite, la prise en compte (le timing) peut être correcte pour les bits suivants.
    Il faudrait vérifier à l'oscilloscope le niveau de SDA lors du second front montant de SCK qui correspond à la valeur de P7. Tu as un oscilloscope ?
    Pour le language C je ne serais pas d'une grande utilité...désolé (je trouve qu'en asm on appréhende mieux le timing d'une fonction de ce type..
    Dernière modification par Qristoff ; 19/08/2009 à 11h18.
    Tout existe, il suffit de le trouver...!

  18. #17
    grd666

    Re : Pcf8574

    Qristoff Merci tu as peut être raison
    Mais nan je n'est plus les moyen de vérifier mon stage est terminé je tenais juste à savoir pourquoi.

  19. #18
    Qristoff
    Animateur Électronique

    Re : Pcf8574

    tu n'as pas moyen de simuler graphiquement ton code avec ton µC ?
    Tout existe, il suffit de le trouver...!

  20. #19
    grd666

    Re : Pcf8574

    Si je simule sa va surement fonctionné vu qu 'il n'y a aucun composant réel sur ISIS PROTEUS
    mais simulé le programme mplab pas possible il coince vu qu'il attend les ouvertures de l'i2c

  21. #20
    invitee9e05da7

    Re : Pcf8574

    Bonjour,


    Je suis novice dans la programmation de Uc et je fais ca pour mon plaisir.

    J'aurais souhaite avoir un exemple de programme qui permette a un 16F877 d'envoyer une commande permettant d'activer une sortie d'un PCF8574.

    Pourriez-vous m'aider, me guider ?

    Je comprends que 99% des personnes sur cette planète n'ont pas de temps a perdre mais je fais partie de ces 1% de personnes qui aident quand ils le peuvent. Je comprendrais bien sur que vous ne puissiez consacrer de temps a ma demande surtout ne connaissant pas votre situation prive ou professionnelle.

    Merci d'avance.

  22. #21
    Gérard

    Re : Pcf8574

    Voir le cours N°2 de Bigonoff, il parle de l'I2C.

  23. #22
    invite7a49d0d5

    Cool Re : Pcf8574

    Salut,

    tu veux que quelqu'un t'écrives le programme pour le PIC?
    dans quel langage? t'as un schéma?

    sinon, sur google tu trouveras moults exemples pouvant
    grandement t'inspirer en y tapant par exemple "PIC+PCF8574"...

    vede
    ;O]
    ____________
    ...

  24. #23
    invitee9e05da7

    Re : Pcf8574

    Bonjour,

    Vede

    J'aurais du evidemment preciser que le langage est du C, ensuite, si une personne se propose de m'aider, je fournirais un schéma.

    Ceci dit ce n'est pas bien difficile concernant le schema, un PIC16F877 communique en I2C au PCF8574 (il y en aura 3) pour faire basculer ou changer d'etat une de ses sorties.

    J'ai deja bien cherché sur le net mais jamais je ne trouve d'exemple de programme.

    Je reprécise que je suis novice, pas programmateur du tout dans l'ame, et que je cherche à comprendre à l'aide d'exemples. Je ne suis pas non plus un ignorant, je connais les bases.

    Gérard, j'ai parcouru le cours de Bigonoff, et les principes de l'I2C je les connais, mais c'est la mise en pratique qui est floue. Pour une programmation simple ca va, mais la avec l'I2C, je patoge ...

    Merci d'avance.

    Bonne semaine.

  25. #24
    Gérard

    Re : Pcf8574

    Dans les docs qui accompagnent les compilateurs, tu devrais trouver ce qu'il te faut.

Discussions similaires

  1. Pcf8574
    Par invite28559ad9 dans le forum Électronique
    Réponses: 1
    Dernier message: 17/12/2008, 18h59
  2. Pcf8574-lcd
    Par invite2d9e7c03 dans le forum Électronique
    Réponses: 5
    Dernier message: 20/07/2008, 11h55
  3. Pcf8574
    Par invite2d9e7c03 dans le forum Électronique
    Réponses: 4
    Dernier message: 06/07/2007, 21h22
  4. Problème lecture PCF8574
    Par invitee45b5732 dans le forum Électronique
    Réponses: 1
    Dernier message: 05/02/2007, 10h04
  5. I²C, PCF8574 et logique inverse
    Par behemerre dans le forum Électronique
    Réponses: 25
    Dernier message: 11/01/2007, 09h58
Découvrez nos comparatifs produits sur l'informatique et les technologies.