Communication I2C entre 3 PIC16f876

Fermé
jiji94 - 7 avril 2008 à 19:46
 tarekLDR - 5 déc. 2009 à 22:01
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+
A voir également:

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
0
Bonjour,
Merci our ta réponse, je vais voir ce que ca donne.
0
La programmation i2c sera biento mon sujet de preocupation
mais a premier vu j'ai eu une fois un probleme semblable ou j'ai oublier de metre le MasterClear au + a travers une resistance donc le circuit se reset infiniment.
0