J'ai une horloge TinyRTC I2C dans l'un de mes projets Arduino, et cela fonctionne la plupart du temps. Mais parfois, il indiquera l'heure comme 165 heures, 85 minutes et 25 secondes (165: 85: 25) pendant quelques secondes, puis reviendra à l'heure correcte.
Je pense que cela a quelque chose à voir avec un bus I2C assez compliqué que j'exécute: il a 12 appareils connectés (l'horloge, un LCD et 10 lumières programmables BlinkM LED).
Voici ce que j'ai essayé de déboguer, en vain:
- Remplacement du RTC et de la batterie
- Remplacement des résistances pullup I2C
- Refait le câblage I2C
- J'ai vérifié la consommation de courant de mon projet (.2A) et s'est assuré que le bloc d'alimentation peut gérer cela (il peut)
- J'ai utilisé 3 blocs d'alimentation différents au cas où je serais obtenir du bruit
Je pense que c'est quelque chose à voir avec le bus I2C ... l'horloge fonctionne bien quand il ne se passe rien d'autre dans le bus, mais dès qu'il y a beaucoup d'activité ( Les LED envoyant des messages, ou peut-être d'autres choses), cela commence à rapporter l'heure comme 165: 85: 25).
Toute idée de la façon dont je pourrais (a) isoler la cause de ce problème; (b) mettre en œuvre une solution?