probleme avec la liaison I2C
Répondre à la discussion
Affichage des résultats 1 à 14 sur 14

probleme avec la liaison I2C



  1. #1
    invite339a0de8

    probleme avec la liaison I2C


    ------

    salut

    pour mon projet je doit contrôler un PCA9532 avec un pic18F452,et comme j'ai pas encore le PCA9532 j'ai commencer à faire des test sur un PCA9535 mais j'arrive pas avec la liaison I2C voila mon code :
    #include <p18f452.h> //for ports declarations
    #include <delays.h> //for delay routines
    #include <i2c.h> //gestion de la communication I2C

    #define TRIS_RC3 TRISCbits.TRISC3
    #define TRIS_RC4 TRISCbits.TRISC4

    #define ledACK PORTAbits.RA0
    #define TRIS_ledACK TRISAbits.TRISA0
    #define ledNAK PORTAbits.RA1
    #define TRIS_ledNAK TRISAbits.TRISA1


    /////////////////////////////////////////////////////////////////////////////
    // //
    // Fonctions //
    // //
    /////////////////////////////////////////////////////////////////////////////

    //from T. Cremel
    unsigned char envoyer_i2c(unsigned char addr, unsigned char commande, unsigned char data1, unsigned char data2)
    {
    IdleI2C();
    StartI2C();
    IdleI2C();
    putcI2C(addr&0xFE);
    IdleI2C();
    if ( SSPCON2bits.ACKSTAT ) // test received ack bit state
    {

    StopI2C();
    return 0; // bus device responded with NOT ACK
    }
    putcI2C(commande);
    IdleI2C();
    if ( SSPCON2bits.ACKSTAT ) // test received ack bit state
    {
    ledNAK = 1;
    StopI2C();
    return 0; // bus device responded with NOT ACK
    }

    putcI2C(data1);
    IdleI2C();
    putcI2C(data2);
    IdleI2C();
    StopI2C();
    return 1;
    }


    /////////////////////////////////////////////////////////////////////////////
    // //
    // Fonction Principale //
    // //
    /////////////////////////////////////////////////////////////////////////////

    void main (void)
    {
    //On désactive l'acquisition analogique
    ADCON1=6;

    TRIS_RC3 = 1;
    TRIS_RC4 = 1;
    TRIS_ledACK = 0;
    TRIS_ledNAK = 0;

    ledACK = 0;
    ledNAK = 0;

    OpenI2C(MASTER, SLEW_OFF);
    // SSPADD = 99; //100KHz sous 40MHz

    while(1)
    {
    if(envoyer_i2c(0x40,0x07,0xFF, 0x01)) //Si l'esclave envoie un ack, on allume la led ACK
    ledACK = 1;
    else
    ledNAK = 1;

    Delay10KTCYx(0);
    Delay10KTCYx(0);

    ledACK = 0;
    ledNAK = 0;


    }
    }

    //config du PIC
    #pragma config OSC = HSPLL
    #pragma config PWRT = ON
    #pragma config WDT = OFF
    #pragma config BOR = ON
    #pragma config BORV = 42
    #pragma config LVP = OFF




    si quelqu'un peut me aider ou me montre mon erreur le problème que la ledACK s'allume mais rien ne passe et je comprend pas pourquoi

    merci

    -----

  2. #2
    simon.

    Re : probleme avec la liaison I2C

    Salut,

    Je ne vois pas bien ce que tu espères en envoyant 7, ff, 1 à ton PCA9535 ?

  3. #3
    gcortex

    Re : probleme avec la liaison I2C

    tu as bien mis les pull-up ?

  4. #4
    invite339a0de8

    Re : probleme avec la liaison I2C

    ces la commande et les data

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

    Re : probleme avec la liaison I2C

    gcortex : tu ve dire quoi avec mettre bien les pull-up

  7. #6
    gcortex

    Re : probleme avec la liaison I2C

    Citation Envoyé par zou2020 Voir le message
    gcortex : tu ve dire quoi avec mettre bien les pull-up
    les résistances de rappel au +5V (ex 4K7)

  8. #7
    invite339a0de8

    Re : probleme avec la liaison I2C

    Citation Envoyé par simon. Voir le message
    Salut,

    Je ne vois pas bien ce que tu espères en envoyant 7, ff, 1 à ton PCA9535 ?
    Citation Envoyé par gcortex Voir le message
    les résistances de rappel au +5V (ex 4K7)
    oui oui le problème que avec le oscilloscope je vois bien mon horloge sur scl et l'adresse, la commande et les data sur sda

  9. #8
    simon.

    Re : probleme avec la liaison I2C

    Citation Envoyé par zou2020 Voir le message
    ces la commande et les data
    Sans rire.

    Non sérieusement, tu t'attends à quoi ? Par rapport à ce qui est décrit dans le datasheet ?

  10. #9
    invite339a0de8

    Re : probleme avec la liaison I2C

    Citation Envoyé par simon. Voir le message
    Sans rire.

    Non sérieusement, tu t'attends à quoi ? Par rapport à ce qui est décrit dans le datasheet ?
    sur la datasheet j'ai vue que l'adresse il est sur 7 bits avec un bit R/W après ta 8bits de commande après deux fois 8bits de data si j'ai bien compris

  11. #10
    simon.

    Re : probleme avec la liaison I2C

    Oui certes....

    Mais 7, ff, 1 ? Pourquoi ? C'est pas les numéros que tu joues d'habitude au Loto je suppose ?

  12. #11
    invite339a0de8

    Re : probleme avec la liaison I2C

    non non je joue pas au loto
    0X07 pour dire le registre 7 : Configuration port 1
    0xFF pour mettre tous les sortie de port1 a 1 : 11111111
    ox01 pour mettre juste le pin 1 de port 0 a 1 :00000001

    tu vois c'est ou mon problème ou pas ?

  13. #12
    simon.

    Re : probleme avec la liaison I2C

    Citation Envoyé par zou2020 Voir le message
    non non je joue pas au loto
    0X07 pour dire le registre 7 : Configuration port 1
    0xFF pour mettre tous les sortie de port1 a 1 : 11111111
    ox01 pour mettre juste le pin 1 de port 0 a 1 :00000001

    tu vois c'est ou mon problème ou pas ?
    Ben, déjà le registre configuration 1 sert uniquement à mettre les ports en entrée ou en sortie. Et avec 0xff tu les mets tous en entrée...

    Ensuite ce registre est le dernier. Il va aller où ton 1 ?

  14. #13
    invite339a0de8

    Re : probleme avec la liaison I2C

    Citation Envoyé par simon. Voir le message
    Ben, déjà le registre configuration 1 sert uniquement à mettre les ports en entrée ou en sortie. Et avec 0xff tu les mets tous en entrée...

    Ensuite ce registre est le dernier. Il va aller où ton 1 ?
    moi je ve juste allume une led sur la 1er sortie de PCA c pour sa je met le 1

  15. #14
    simon.

    Re : probleme avec la liaison I2C

    Oui mais faudrait peut-être commencer par lire et comprendre le datasheet du composant que tu utilises.

Discussions similaires

  1. Problème PortC avec I2C sur 16F877A
    Par flyingrock dans le forum Électronique
    Réponses: 2
    Dernier message: 26/04/2009, 22h54
  2. liaison I2C
    Par inviteac09f73c dans le forum Électronique
    Réponses: 0
    Dernier message: 26/03/2009, 19h11
  3. Probleme liaison I2C PIC 16F877
    Par invitecd367060 dans le forum Électronique
    Réponses: 8
    Dernier message: 18/03/2009, 08h17
  4. liaison SPI et bus I2C
    Par invite5a645688 dans le forum Électronique
    Réponses: 1
    Dernier message: 27/02/2008, 14h55
  5. Liaison RS232, Bus I2C et SPI.
    Par invite43feaeee dans le forum Électronique
    Réponses: 1
    Dernier message: 01/06/2003, 19h31
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...