Bonjour,
J'aurais besoin de votre aide. Cela fait quelques jours que nous séchons sur ce problème et ne voyons absolument pas de quoi il provient.
Nous essayons de faire communiquer l'Eval Board AT91EB55 avec un kit MSP430-P1611 (Olimex). Ce modèle de microprocesseur ARM ne proposant pas d'interface I2C, nous utilisons un pont SPI/i2C (eval Board SC18IS60x).
Les 3 cartes sont reliées entre elles comme ceci (voir fichier joint).
L'AT91 est maître, le MSP430 est esclave.
Les codes des 2 composants ont été testé intépendamment, ils sont 100% corrects.
Par contre, dans notre exercice, nous disons à l'esclave d'envoyer tous les 2 secondes une demande de lecture. L'esclave est sensé retourné une valeur incrémentée. Lorsqu'on analyse le signal sur l'oscillo, il y a bien le byte d'adresse de l'esclave suivi du bit de lecture, mais après il y a un NACK. Après cela, le SCL reste un moment à 0 puis remonte à 1 mais le SDA reste à 0 !!! Et nous n'arrivons pas à comprendre pourquoi ! Tout est ensuite bloqué, il faut faire un reset du msp430 pour qu'on puisse voir à nouveau passer la demande de lecture du maître.
L'adresse de l'esclave est correcte. Lorsqu'on envoie une adresse bidon, il y a simplement un NACK suivi par une condition de STOP.
Les pull-up ont été soudées sur le kit msp430 (2 de 4k7).
Les câbles ont également été testés.
Si vous avez des idées, ....
Merci d'avance
-----