RTC DS3231 (reloj en tiempo real)

202 views
Skip to first unread message

Democrito

unread,
May 9, 2021, 6:41:36 PM5/9/21
to FPGAwars: explorando el lado libre
Hola,

Estuve experimentando con el archiconocido reloj en tiempo real DS1307 pero no ha habido manera y lo he tenido que dejar como "misterios de la ciencia", porque le daba exactamente lo que me pedía. Sin embargo, con el DS3231 me funcionó a la primera y estaba utilizando el mismo circuito, sin cambios añadidos.

Se dice que el DS3231 es el sustituto del DS1307 porque es más moderno y mucho más exacto (creo que también corrige un bug que sale en ciertos años bisiestos), y además tiene el mismo precio que su versión anterior.

Adjunto un zip, en el interior está el módulo principal y un ejemplo en el que se muestran los datos a través del puerto serie. El circuito ejemplo es este:
esquema controlador ds3231.PNG
Arriba, en las "cajas de constantes" se configura la fecha y la hora. El año sólo tiene dos dígitos y en el día de la semana se puede poner un número del 1 al 7; en este caso no importa si el primer día es domingo o lunes, porque es una convención y puedes interpretarla a tu gusto.

Como ejemplo he puesto datos límites (excepto el año) que nos permitirán comprobar que al cabo de 60 segundos cambia la fecha completamente. Lo he puesto como 31 de diciembre de 2021 a las 23:59h.

Los datos de salida del módulo principal los da en BCD de 8 bits; los 4 bits más altos representa la decena y los 4 bits más bajos representa la unidad.

Una vez que subimos el circuito y se pone en marcha mostrará la hora y fecha que tenga retenida, y si no tiene pila, mostrará una fecha fija inicial.

muestreo rtc ds3231.PNG
La primera columna (la de la izquierda) es el día, y luego viene el mes, el año, día de la semana, hora, minutos y segundos respectivamente.

La fecha/hora que queramos grabar se hace a través del pulsador llamado "preset" y se memorizará y comenzará a contar el tiempo a partir de esa fecha/hora. La línea amarilla representa un estado inicial (en mi caso sin pila) y cuando pulso "preset" se memoriza los datos que había puesto en las "cajas de las constantes" y comienza a contar a partir de esa configuración temporal.

Si alguien quiere crear alarmas o un programador de riego, decirles que es muy sencillo de hacer y no hace falta tomar todos los datos de salida. Por ejemplo, para un programador de riego no hace falta tener el mes, el año ni los segundos de tiempo. Se puede poner simples comparadores de 8 bits y cuando se cumple la condición hacer que se active un temporizador con el tiempo que gustes. Y para poner más de una alarma o zonas de riego, se pueden poner en paralelo y con fechas/horas distintas.

Saludos.
ds3231.zip

charli va

unread,
May 10, 2021, 1:48:34 AM5/10/21
to fpga-wars-explora...@googlegroups.com
Que grande Demócrito!  esta semana en cuanto pueda lo pruebo, que tengo varios ds3231 por aquí.

Un abrazo!

--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/34518178-d3ea-40c2-af6f-d83612f3d97dn%40googlegroups.com.

Democrito

unread,
May 10, 2021, 4:00:30 AM5/10/21
to FPGAwars: explorando el lado libre
A ver si me llega otro cacharrillo I2C que estoy esperando y cuando lo termine comienzo a clavar los diente al SPI.

Se me olvido comentar que si hago actualizaciones siempre estarán disponibles en mi GitHub.

Otro abrazo Charli!

beni...@gmail.com

unread,
May 10, 2021, 11:50:51 AM5/10/21
to FPGAwars: explorando el lado libre
Muy bueno Democrito, muchisimas gracias por el trabajo. 

Saludos

Fernando

Democrito

unread,
May 10, 2021, 2:29:04 PM5/10/21
to FPGAwars: explorando el lado libre
Gracias Fernando!

vas...@gmail.com

unread,
May 11, 2021, 5:43:03 PM5/11/21
to FPGAwars: explorando el lado libre
Excelente Democrito!, a ver si me consigo uno y lo pruebo, es super interesante!.

Gracias!!

El lunes, 10 de mayo de 2021 a la(s) 15:29:04 UTC-3, Democrito escribió:
Gracias Fernando!

Democrito

unread,
May 12, 2021, 1:59:20 AM5/12/21
to FPGAwars: explorando el lado libre
"vascodh" pruebas y reportar bugs siempre serán bienvenidos, gracias! Ahora podremos, con una FPGA, activar/desactivar "esto y aquello" a la hora y fecha que queramos (domótica), y de una manera súper sencilla, con simples comparadores de igualdad!
Reply all
Reply to author
Forward
0 new messages