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

I2C esclave: ACKSTAT toujour egale a 0



  1. #1
    jiji94

    I2C esclave: 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. Publicité
  3. #2
    BastienBastien
    Invité

    Re : I2C esclave: ACKSTAT toujour egale a 0

    Bonjour,

    Je n'ai pas regardé ton code. Pour ce qui est des interruptions, j'ai vu, du coin de l'oeil, que tu as géré ça, donc ça doit probablement être bon.

    Est-ce que l'adresse que tu envoie avec la trame correspond à celle que tu as assigné au PIC esclave ? Est-ce que le PIC esclave réagit à la réception d'une trame ? Pour le savoir, fait lui changer d'état une LED à chaque fois.

  4. #3
    jiji94

    Re : I2C esclave: ACKSTAT toujour egale a 0

    Bonjour,
    Pour ce qui est de la trame envoyé, en regardant à l'oscilloscope c'est labonne addresse qui est envoyée, mais je ne vois pas le byte de donnée qui est sencé suivre.
    Au niveau de l'esclave, il réagi à la trame envoyé seulement au premier d'envoi du maitre, c'est-à-dire lorsque je reset le maître, le bit SSPIF de l'esclave passe à 1. Et parfois quand je laisse tourner quelques minutes les deux programmes l'esclave reçoit des trames, envoi un ACK mais le byte reçu n'a aucun sens(je copie SSPBUF sur un des ports du pic), et il fait ça même si ce n'est aps son addresse à qui le maitre envoi.
    Je me suis di que c'était peu être un problème au niveau du mapitre étant donné que je ne voi pas le byte de donnée après l'addres.

  5. #4
    BastienBastien
    Invité

    Re : I2C esclave: ACKSTAT toujour egale a 0

    Bonjour,

    L'esclave devrait envoyer un ACK dès qu'il reçoit le premier octet. S'il renvoie NOACK, c'est-à-dire pas de ACK, cela signifie qu'il (l'esclave) n'est pas prêt.

    Que fait l'esclave ??? Est-ce que tu as la possibilité de faire du In Circuit Debugging pour savoir ce qu'il fait ?


    EDIT : [Je précise que je n'ai aucune expérience dans ce domaine. J'ai découvert l'I²C dans le cours de BigOnOff ces quelques derniers jours. Alors ce que je dis est à vérifier....]

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

    Re : I2C esclave: ACKSTAT toujour egale a 0

    Salut,

    Ci-joint un petit cours animé sur l'I2C au format Powerpoint :
    http://www.aix-mrs.iufm.fr/formation...telech/IIC.pps

    a+

  8. #6
    jiji94

    Re : I2C esclave: ACKSTAT toujour egale a 0

    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

  9. Publicité

Discussions similaires

  1. Transaction I2C entre deux pics 18f4550 (maître-esclave)
    Par lynal1 dans le forum Électronique
    Réponses: 9
    Dernier message: 12/04/2011, 15h17
  2. routine I2C esclave pour basic stamp
    Par lucs dans le forum Électronique
    Réponses: 5
    Dernier message: 06/03/2007, 16h47
  3. PIC18F452 - Maître-esclave I2c
    Par lianoos dans le forum Électronique
    Réponses: 17
    Dernier message: 06/02/2007, 21h18
  4. c'est toujour vert
    Par freesbeep dans le forum Électronique
    Réponses: 10
    Dernier message: 15/09/2004, 19h55
Découvrez nos comparatifs produits sur l'informatique et les technologies.