IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

I2C maitre: ACKSTAT toujour egale a 0


Sujet :

C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut I2C maitre: ACKSTAT toujour egale a 0
    I2C maitre: ACKSTAT toujour egale a 0
    Bonjour,
    Je programme un mini reseau i2c entre 2 PIC 16f876 en langace C, et j'ai reussi a faire fonctionner le mettre(J'arrive a voir la trame sur SCL et SDA)
    Mon probleme est que mon maitre ne recoit jamais d'ACK venant de l'esclave(bit ACKSTAT toujours egale a 1), et donc arete son envoi a l'addresse. Je pense aue c'est un probleme au niveau de l'esclave, car il ne renvoi pas d'ACK quelque soit l'address d'envoi(j'ai essaye toute les address), et son bit SSPIF est toujours egale a zero.
    Voici ma routine de configuration de l'esclave:
    TRISC = TRISC | 0x18;
    SSPCON2 = 0x00;
    CKE= 0; // SMBus Specific Inputs Disabled
    SMP=1; //Disable the slew rate (100KHz)

    SSPADD = ADRSLAVE<<1; // Affect an valid address of the slave mcu
    GIE = 1; /* interrupts allowed */
    PEIE = 1;
    SSPIE=1;
    SSPIF=0;
    SSPCON = 0x36; // SSPEN = 1
    // SSPM3:SSPM0 = 0110
    Si quelqu'un pourrais m'aider ca m'arangerai beaucoup.
    Merci pour votre attention

  2. #2
    Membre averti Avatar de cmoibal
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2007
    Messages : 361
    Points : 414
    Points
    414
    Par défaut
    Citation Envoyé par jiji94 Voir le message
    I2C maitre: ACKSTAT toujour egale a 0
    Bonjour,
    Je programme un mini reseau i2c entre 2 PIC 16f876 en langace C, et j'ai reussi a faire fonctionner le mettre(J'arrive a voir la trame sur SCL et SDA)
    Mon probleme est que mon maitre ne recoit jamais d'ACK venant de l'esclave(bit ACKSTAT toujours egale a 1), et donc arete son envoi a l'addresse. Je pense aue c'est un probleme au niveau de l'esclave, car il ne renvoi pas d'ACK quelque soit l'address d'envoi(j'ai essaye toute les address), et son bit SSPIF est toujours egale a zero.
    Voici ma routine de configuration de l'esclave:
    TRISC = TRISC | 0x18;
    SSPCON2 = 0x00;
    CKE= 0; // SMBus Specific Inputs Disabled
    SMP=1; //Disable the slew rate (100KHz)

    SSPADD = ADRSLAVE<<1; // Affect an valid address of the slave mcu
    GIE = 1; /* interrupts allowed */
    PEIE = 1;
    SSPIE=1;
    SSPIF=0;
    SSPCON = 0x36; // SSPEN = 1
    // SSPM3:SSPM0 = 0110
    Si quelqu'un pourrais m'aider ca m'arangerai beaucoup.
    Merci pour votre attention
    c'est quoi la question ?
    "La créativité est faites d'attention et de respect pour les petits faits de la vie."

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Ma question serais de savoir si j'ai fait une erreur dans ma configuration, et si oui si quelqu'un pourrait m'aiguiller pour la réparer.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci pour vos reponses.
    J'ai identifie le probleme, et ca vien du maitre. Le bit R/W rest blocquer a '1', et dc lorsque je fait une attente de l'IDLE condition il bloque, et donc je ne peu pas mettre la data ds SSPBUF. Je ne sais pas d'ou vien cette erreur, si qqn a deja eu ce probleme...
    merci de votre attention

  5. #5
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 55
    Points : 62
    Points
    62
    Par défaut
    Sans voir les fonctions que tu as codées c'est difficile de donner un avis.
    Quel est ton compilateur ? Environnement ?
    Généralement les fonctions bas niveaux sont fournies, un simple #include <i2c.h> suffit.

Discussions similaires

  1. [XL-2007] nb.si toujours egale a 0
    Par orguyrine dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/01/2013, 18h55
  2. [Image]getWidth toujours egale a -1
    Par miel_pops dans le forum 2D
    Réponses: 4
    Dernier message: 27/06/2004, 21h05
  3. [VB6] Propriété WindowsState toujours égal à 0
    Par ReliMente dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 14/12/2003, 20h39
  4. [VB6] [BDD] Recordset et champ égal à Null
    Par Gr|ppen dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 07/03/2003, 10h00
  5. Toujours un problème de rafraichissement de DBGrid
    Par tripper.dim dans le forum C++Builder
    Réponses: 4
    Dernier message: 09/12/2002, 13h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo