Communication I2C entre 3 PIC16f876
jiji94
-
tarekLDR -
tarekLDR -
Bonjour,
J'ai quelque problème pour mettre en oeuvre un réseau I2C contenant 3 pic, dont deux esclaves et un maitre. J'utilise le compilateur IAR embedded. Côté programmation, voici mon code d'initialisation du maitre.
CKE=0;
SMP=1;
SSPIE=0;
SSPCON=0x28;
SSPEN=1;
SSPADD=9;
SSPCON2 = 0;
Ma première question serait de savoir comment je peux tester si j'ai fait la bonne initialisation, j'ai essayer de regarder le signal d'horloge (SCL) avec une résistance de pull-up de 4.7K(j'ai essayé avec une de 10k et une de 1k aussi), mais j'obtien un signal bloqué au niveau logic haut.
Lorsque je lance le programme, il bloque lorsque j'essai d'envoyer l'octet d'adresse (après avoir envoyer un start), à cette instruction : while(!SSPIF);
A l'oscilloscope je ne voi pas non plus lenvoi du start.
Ma deuxième question est donc de savoir si ce blocage est du à mon premier questionnement, où s'il est du à une mauvaise initialisation.
Merci pour l'attention portée à mes questions.
A+
J'ai quelque problème pour mettre en oeuvre un réseau I2C contenant 3 pic, dont deux esclaves et un maitre. J'utilise le compilateur IAR embedded. Côté programmation, voici mon code d'initialisation du maitre.
CKE=0;
SMP=1;
SSPIE=0;
SSPCON=0x28;
SSPEN=1;
SSPADD=9;
SSPCON2 = 0;
Ma première question serait de savoir comment je peux tester si j'ai fait la bonne initialisation, j'ai essayer de regarder le signal d'horloge (SCL) avec une résistance de pull-up de 4.7K(j'ai essayé avec une de 10k et une de 1k aussi), mais j'obtien un signal bloqué au niveau logic haut.
Lorsque je lance le programme, il bloque lorsque j'essai d'envoyer l'octet d'adresse (après avoir envoyer un start), à cette instruction : while(!SSPIF);
A l'oscilloscope je ne voi pas non plus lenvoi du start.
Ma deuxième question est donc de savoir si ce blocage est du à mon premier questionnement, où s'il est du à une mauvaise initialisation.
Merci pour l'attention portée à mes questions.
A+
A voir également:
- Communication I2C entre 3 PIC16f876
- Ai suite 3 - Télécharger - Optimisation
- Picasa 3 - Télécharger - Albums photo
- Photorecit 3 - Télécharger - Visionnage & Diaporama
- Zelda 3 - Accueil - Guide jeu vidéo
- Samsung kies galaxy tab 3 ✓ - Forum Mobile
3 réponses
Salut,
je n'ai pas bosser sur de l'I2C sur un PIC par contre je sais que j'avais eu un soucis sur un autre micro. Typiquement je faisais un while comme toi alors qu'il fallait plutot détécter un front car sinon le bit était setté de la fois d'avant, donc je n'entrais plus dans ma boucle.
Je ne sais pas si j'ai étais clair, ni même si mon problème est le même que le tien mais au cas où...
Nico
je n'ai pas bosser sur de l'I2C sur un PIC par contre je sais que j'avais eu un soucis sur un autre micro. Typiquement je faisais un while comme toi alors qu'il fallait plutot détécter un front car sinon le bit était setté de la fois d'avant, donc je n'entrais plus dans ma boucle.
Je ne sais pas si j'ai étais clair, ni même si mon problème est le même que le tien mais au cas où...
Nico