Communication I2C entre 3 PIC16f876

jiji94 -  
 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+
A voir également:

3 réponses

Nico
 
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
jiji94
 
Bonjour,
Merci our ta réponse, je vais voir ce que ca donne.
0
tarekLDR
 
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