yvoo
Messages postés3Date d'inscriptiondimanche 14 mai 2006StatutMembreDernière intervention27 avril 2008
-
18 avril 2008 à 11:41
uchihabadara
Messages postés1Date d'inscriptionmercredi 24 juin 2009StatutMembreDernière intervention 3 juillet 2009
-
3 juil. 2009 à 00:24
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
uchihabadara
Messages postés1Date d'inscriptionmercredi 24 juin 2009StatutMembreDernière intervention 3 juillet 2009 3 juil. 2009 à 00:24
tu peux utiliser la fonction getenv("I2C_SLAVE") que tu trouvera dans la bibliothèque #use i2c
j'espère que ça va fonctionner.
PS: aurais-tu la gentillesse de m'envoyer votre code j'ai encore besoin de quelques détailles car j'ai aussi un projet qui se porte sur le même sujet
et merci d'avance