La página 8 de hoja de datos DS1307 indica lo siguiente:
En la primera aplicación de energía al dispositivo, los registros de hora y fecha se restablecen normalmente al 01/01/00 01 00:00:00.
Por lo tanto, cuando aplica energía al RTC, normalmente se reiniciará en cero. Sin embargo, como James Cameron señaló en su respuesta, la única respuesta garantizada al fallo de alimentación es el bit 7 de detención de reloj (CH) del registro 0. Por lo tanto, los datos pueden estar dañados al inicio. En cualquier caso, después de aplicar energía al dispositivo, deberá configurar el tiempo usted mismo. Entonces comenzará a marcar por sí mismo.
La comunicación con el DS1307 RTC se realiza a través del I 2 C protocol . Uno usualmente usaría un MCU para controlarlo. Usualmente uso un ATmega328P para hacerlo sin problemas. Puedes usar un PIC, Raspberry Pi o un Arduino, o cualquier otra MCU popular que haya por ahí.
Cablearlo es bastante simple. Sólo tienes que seguir la hoja de datos DS1307. La configuración más habitual es la siguiente:
- Conecte los terminales
5V
y GROUND
a la fuente de alimentación principal de su placa.
- Coloque una celda de moneda de 3V en su soporte. Eso permitirá al RTC mantener el tiempo mientras se desconecta la alimentación principal.
- Conecte los cables
SDA
y SCL
a los pines correspondientes en su placa MCU. En el ATmega328P, esos son los pines 27 y 28, respectivamente. En Arduino Uno, estos son los pines de entrada analógica A4
y A5
respectivamente.
- Es probable que el terminal
SQ
esté cableado al pin de salida DS1307 SQW / OUT (Cuadrado / Controlador de salida). Cuando está habilitado, el pin emite una de las cuatro frecuencias de onda cuadrada (1Hz, 4kHz, 8kHz, 32kHz). Es útil para activar interrupciones en su código, para que el programa sepa cuándo ha cambiado el tiempo (segundos), por ejemplo.
- Hay otro terminal,
DS
, con el que no estoy familiarizado. Haga que encuentre y lea el manual del módulo y comprenda para qué sirve mientras diseña la placa que utilizará el RTC.
En su programa, necesita hacer que su MCU hable con el RTC usando el protocolo I 2 C. Puede hacerlo usted mismo, pero lo más fácil es encontrar una biblioteca que le facilite la comunicación. Para Arduinos, hay algunas bibliotecas que se desarrollaron específicamente para controlar el DS1307. Estas bibliotecas proporcionarán funciones a las que puede llamar desde su programa para establecer la hora inicial (actual) y luego leer la hora cuando sea necesario.
Espero que esta actualización aborde tu pregunta.