El DS1307Z+T&R funciona como un reloj esclavo I2C en tiempo real con batería de reserva, manteniendo la hora y fecha exactas a través de un oscilador de cristal externo de 32,768 kHz.
Circuito oscilador: El DS1307 contiene un circuito oscilador interno que requiere un cristal de diapasón externo de 32,768 kHz conectado entre X1 y X2. El oscilador funciona continuamente mientras haya alimentación disponible de VCC o VBAT. El circuito oscilador incluye condensadores de carga internos diseñados para un cristal con una capacitancia de carga de 12,5 pF. El oscilador puede desactivarse poniendo a 1 el bit CH (Clock Halt) (bit 7 del registro de segundos en la dirección 00h); cuando CH es 0 (por defecto tras el encendido con VBAT válida), el oscilador funciona normalmente.
Lógica de reloj/calendario: La salida del oscilador de 32,768 kHz se divide a través de un contador binario de ondulación de 15 etapas para producir un tick de 1 Hz. Cada tic de 1 Hz incrementa el contador de segundos. El contador de segundos se voltea a 60 para incrementar los minutos, que se voltea a 60 para incrementar las horas, y así sucesivamente. El contador del día de la semana se incrementa cuando las horas pasan de 23 a 00 (medianoche). El incremento del contador de la fecha depende del mes y del año (compensación automática del año bisiesto para febrero). Todos los valores de hora y fecha se almacenan en formato BCD (decimal codificado en binario) en el mapa de registros.
Interfaz I2C Esclavo: El DS1307 funciona como un dispositivo esclavo I2C con una dirección fija de 7 bits de 0x68 (1101000 binario). El maestro inicia la comunicación enviando una condición START seguida de la dirección del esclavo y un bit R/W. Para las operaciones de escritura, el maestro envía el puntero de dirección de registro seguido de bytes de datos. Para operaciones de lectura, el maestro primero escribe el puntero de dirección de registro, luego emite un START repetido y lee bytes de datos. El puntero de dirección de registro se incrementa automáticamente después de cada byte leído, lo que permite leer toda la hora/fecha (7 bytes) en una sola ráfaga.
Detección y conmutación de fallos de alimentación: El dispositivo monitoriza continuamente VCC. Cuando VCC cae por debajo de VBAT más aproximadamente 0,2 V, el interruptor de alimentación interno desconecta VCC y conecta VBAT para alimentar el oscilador y la SRAM. En este modo de batería de reserva, la interfaz I2C se desactiva y el pin SQW/OUT se pone a nivel bajo. Cuando VCC sube por encima de VBAT más aproximadamente 0,2 V, el dispositivo vuelve a la alimentación VCC, la interfaz I2C se activa y la patilla SQW/OUT reanuda su función programada. La conmutación no tiene fallos y no afecta a la precisión de la medición del tiempo.
Registros horarios BCD: La hora y la fecha se almacenan en siete registros (00h-06h) en formato BCD. Cada dígito de la hora/fecha ocupa un nibble separado de 4 bits: por ejemplo, el registro de segundos almacena el dígito de las decenas de segundos en los bits 6-4 y el dígito de las unidades en los bits 3-0. El bit 7 del registro 00h es el bit CH (Clock Halt). El bit 6 del registro 02h es la selección del modo 12/24 horas. En el modo de 12 horas, el bit 5 es el indicador AM/PM. El registro de día de la semana (03h) es un contador simple de 1 a 7 que se incrementa a medianoche.
Salida de onda cuadrada: La patilla SQW/OUT puede generar una onda cuadrada a una de cuatro frecuencias (1 Hz, 4,096 kHz, 8,192 kHz, 32,768 kHz) cuando el bit SQWE (bit 4 del registro de control en 07h) está a 1. La frecuencia se selecciona mediante los bits RS1:RS0 (bits 1:0 del registro de control). Cuando SQWE es 0, el pin SQW/OUT emite el nivel lógico programado en el bit OUT (bit 7 del registro de control).
NV SRAM: Los 56 bytes de NV SRAM (direcciones 08h-3Fh) son memoria de lectura/escritura de propósito general que se mantiene mediante batería de respaldo cuando falla VCC. A diferencia de la EEPROM, no hay límites de ciclo de escritura ni retardos de escritura, por lo que es adecuada para datos actualizados con frecuencia, como ajustes de alarma, valores de calibración o registros de balanceo.