Bonjour à tous,
Suite à l'évolution d'un projet pour changer un accéléromètre qui arrive en fin de vie. Je rencontre des soucis avec le bus I2C sur lequel il était.
Mon système est constitué d'un bus I2C permettant la communication avec un accéléromètre, un capteur de température, un PCB avec un élément RFID et un élément de sécurité. Le tout est commandé par un microcontrôleur de chez Cypress.
J'ai pris une de mes cartes avec cet accéléromètre que j'ai dessoudé et enlever tout les éléments externes qui lui étaient lié.
J'ai alors constaté une instabilité de communication au niveau du bus I2C, cette instabilité apparaît rarement mais toujours pour communiquer avec le même composant qui est un composant de sécurité (SHA204A) que j'utilise pour générer des clés de sécurité.
Je vous joins l'ensemble des blocs fonctionnels.
i2c_probleme.jpg
Lorsque j'ai retiré mon accéléromètre, j'ai également retiré C5/C4/C6.
J'ai fais des mesures à l'oscilo, j'ai constaté une dégradation du signal, sachant que j'étais en fast mode (400KHz), je suis passé en standard mode (100KHz). Avec en résultat de une meilleur qualité de signal et pas de soucis sur le respect des temps de montés/descente.
Mais après avoir relancé mes tests sur 24h, je constate encore l'apparition d'erreur toujours de manière aléatoire mais toujours pour discuter avec le même composant (SHA204A).
J'ai revu le code et fait des modifications pour améliorer son initialisation et sa communication compte tenu du fait que la datasheet du composant indique qu'il peut y avoir des désynchronisation. Mais toujours le même résultat.
J'ai diminué les résistances de pull-up pour passer de 4.7Kohms à 1Kohms, mais pas d'amélioration.
Aujourd'hui je suis un peu à court d'idée pour régler ce soucis, sachant que je ne pensais pas aboutir à ce problème en retirant ce composant du bus I2C.
Je vous joins la dernière capture d'oscillo suite à mon passage a 1Kohms pour mes résistance de pull.
SCR03.PNG
Je souhaiterai avoir vos conseils par rapport à ce problème.
Merci,
Maxeyli
-----