Tengo un reloj TinyRTC I2C en uno de mis proyectos de Arduino y funciona la mayor parte del tiempo. Pero ocasionalmente, informará la hora como 165 horas, 85 minutos y 25 segundos (165: 85: 25) durante un par de segundos, luego volverá a la hora correcta.
Creo que esto tiene algo que ver con un bus I2C bastante complicado que estoy ejecutando: tiene 12 dispositivos conectados (el reloj, una pantalla LCD y 10 luces programables LED BlinkM).
Esto es lo que intenté depurar, sin éxito:
- Reemplazó el RTC y la batería
- Reemplazó las resistencias pullup I2C
- Rehice el cableado I2C
- Verifiqué el consumo de corriente de mi proyecto (.2A) y me aseguré de que la fuente de alimentación pueda manejar eso (puede)
- Usé 3 fuentes de alimentación diferentes en caso de haciendo ruido
Creo que esto es algo que tiene que ver con el bus I2C ... el reloj funciona bien cuando no pasa nada más en el bus, pero tan pronto como hay mucha actividad ( Se envían mensajes LED, o quizás otras cosas) comienza a informar la hora como 165: 85: 25).
Alguna idea de cómo podría (a) aislar la causa de este problema; (b) ¿acertar en la implementación de una solución?