El DS1307 tiene dos fuentes de energía: la fuente VCC principal y la batería de respaldo. Este último alimentará el DS1307 cuando se corte la energía principal para que el reloj pueda seguir corriendo.
Me enfrento a un problema con el RTC DS1307 cuando la energía principal se cae repentinamente y luego regresa el tiempo en la pantalla LCD simplemente se congela. A veces, cuando eso sucede (apagado), el RTC sigue funcionando (parece que el DS está atascado cuando se apaga el interruptor principal).
Este es el circuito exacto que usé y la batería da 3.0V:
El código que utilicé está exactamente en la publicación del blog: DS1307 Real Time Clock Working .
¿Cuál podría ser el problema?
El esquema es bueno. Ejecute esta lista de verificación:
Verifique que su fuente de alimentación tenga onda limpia, especialmente en los tiempos de conexión y desconexión. Si aumenta más de 1V, agregue un capacitor de 4.7uF. Si no soluciona el problema, cambie la fuente de alimentación y renueve el DS1307.
Verifique la capacidad de corriente de la batería de 3V, solo sin voltaje, DS1307 necesita 200uA min.
Verifique si el bate de 3V tiene una ruta no deseada descargándolo. Especialmente si estás usando protoboard.
Compruebe los comandos/software de I2C.
Por lo general, este tipo de problema surge debido a:
Verifique para asegurarse de que está reiniciando el bus I2C correctamente en el inicio. Si no lo está, verá que cuando su programa esté bloqueado, la línea de datos estará baja todo el tiempo. Puede resolver este problema enviando pulsos de reloj desde el maestro hasta que todos los dispositivos hayan liberado la línea de datos.
¿Se ha asegurado de hacer lo recomendado en la hoja de datos?
RELOJ Y CALENDARIO
El bit 7 del registro 0 es el bit de parada de reloj (CH). Cuando este bit se establece en 1, el oscilador se desactiva. Cuando se borra a 0, el oscilador está habilitado. Tenga en cuenta que el estado de encendido inicial de todos los registros no está definido. Por lo tanto, es importante habilitar el oscilador (CH bit = 0) durante la configuración inicial.
En otras palabras, si olvidó en la inicialización de su software restablecer el bit CH, el oscilador no funcionaría (y el valor del bit es aleatorio al encender)
adam lorenzo
solo