Utilizando el reloj de tiempo real DS1307

Vamos a aprender a utilizar el módulo «Reloj de tiempo real» para medir el tiempo. El circuito integrado DS1307 es un dispositivo ideal para implementar proyectos de todo tipo que necesiten referencia horario o de calendario.

NIPLE incorpora una serie de dispositivos reloj/calendario de tiempo real para crear aplicaciones que necesiten llevar un control del tiempo. Son ideales para llevar a cabo desarrollos de consumo (relojes tradicionales) o aplicaciones industriales para registrar datos (dataloggers) en combinación con distintos tipos de sensores.

El RTC DS1307 es un reloj de tiempo real (RTC) que utiliza el bus I2C para comunicarse con el microcontrolador. El reloj/calendario provee segundos, minutos, horas, día, día de la semana, mes y año. Ajusta de forma automática los meses de 31 días y años bisiestos. Posee circuitería para detectar fallas en la alimentación y conmutar automáticamente al circuito de alimentación de respaldo (vía una celda de litio de 3V o similar), señal de salida programable (onda cuadrada de frecuencia configurable) y su consumo es menor a 500nA cuando se encuentra alimentado por la bateria de respaldo.

Configuración de pines

 

pinout

Pin 1 (X1): conexión para cristal de cuarzo de 32.768kHz
Pin 2 (X2): conexión para cristal de cuarzo de 32.768kHz
Pin 3 (VBAT): batería de respaldo. Si no se utiliza, este pin debe conectarse a GND
Pin 4 (GND): masa
Pin 5 (SDA): I2C datos
Pin 6 (SCL): I2C reloj
Pin 7 (SQW/OUT): salida de onda cuadrada
Pin 8 (VCC): alimentación

Configuración del módulo

Para poder utilizar el RTC es necesario declararlo. Para esto seguimos la ruta: DECLARACIÓN DE DISPOSITIVOS
>>> NUEVO DISPOSITIVO >>> RELOJ TIEMPO REAL.

modulo

Los parámetros a configurar son:

  • MODELO: Niple incorpora varios modelos de RTC. Disponemos de DS1302, DS1307 y PCF8583. En nuestro ejemplo vamos a emplear el DS1307
  • PIN SCL: definir pin de reloj I2C
  • PIN SDA: definir pin de datos I2C

Inicialización

El primer paso es insertar el bloque de inicialización del dispositivo. Este bloque genera rutinas internas necesarias para el correcto funcionamiento del DS1307.

configuracion_1

Por defecto configura el RTC con los datos actuales del sistema operativo (fecha y hora).

bloque_1

Escritura

Mediante la opción «Escritura» accedemos a varios aspectos:

configuracion_3

FECHA: configuramos día, mes, año y día semana, tanto de forma fija (ingresando el valor deseado) como variable mediante el uso de registros.

HORA: configuramos formato de las horas (fijo en 24HS), horas, minutos y segundos, tanto fijo como variable mediante el uso de registros.

SALIDA: activar pulso de salida (frecuencias admitidas 1Hz 4096kHz, 8192kHz, 32768kHz)

bloque_2

Lectura

Mediante la opción «lectura» del bloque RTC podemos leer datos del dispositivo y almacenarlos en variables:

configuracion_2

FECHA: día, mes, año y día semana.

HORA: horas, minutos y segundos.

bloque_3

Puede descargar los archivos que complementan al tutorial (código fuente, esquemas y datasheets) haciendo clic AQUÍ.

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on TumblrPin on PinterestDigg thisShare on RedditEmail this to someonePrint this page

2 comentarios sobre “Utilizando el reloj de tiempo real DS1307”

Los comentarios están cerrados.