Tengo problemas para que el RTC DS1307 funcione. Estoy hablando con él a través de un Arduino, y solo estoy tratando de hacer que funcione un bosquejo de ejemplo. He probado dos bibliotecas diferentes, una de Ladyada , y una de Seeedstudios . Eléctricamente, tengo el Arduino y el RTC alimentados por 5 V, y la entrada VBAT del RTC a tierra (según la hoja de datos, ya que no estoy usando una batería durante las pruebas). Estoy construyendo usando el IDE Arduino-0022. Tengo 10k pullups en las líneas SDA y SCL. Tradicionalmente he usado pullups más pequeños en el bus I2C (por ejemplo, 3.3k o 4.7k), pero no creo que ese sea mi problema.
Ambas bibliotecas indican básicamente que los datos que devuelve el dispositivo son todos ceros para la fecha y la hora. Así que fui y capturé el tráfico I2C usando un osciloscopio (usando la biblioteca Seeedstudios) y esto es lo que parece:
Esa transacción exacta se repite a intervalos regulares. La traza amarilla es SCL, la traza azul es SDA. ¿Cómo interpretas ese intercambio I2C? Tengo mis propias teorías, pero estoy buscando una evaluación independiente. Dado ese rastro, ¿crees que el DS1307 está cocido? ¿Crees que es un problema de software? Otras ideas?