<img src="https://queue.simpleanalyticscdn.com/noscript.gif?collect-dnt=true" alt="" referrerpolicy="-when-downgrade"> DS1337C: RTC con dos alarmas y sin cristal
NeoTeo
Mario

DS1337C: RTC con dos alarmas y sin cristal

DS1337C: RTC con dos alarmas y sin cristal

El Reloj de Tiempo Real (Real Time Clock) – RTC) DS1337C de Dallas Semiconductor nos ofrece características muy interesantes que lo convierten en un dispositivo muy particular. Además de sus dos alarmas y de mantener las características básicas que transformaron al DS1307 en un éxito, este RTC ofrece la ventaja de no depender de ningún cristal ni resonador externo. La ventaja de tener integrado todo el conjunto bajo el mismo encapsulado elimina cualquier posibilidad de variación horaria más allá de las especificadas por el fabricante. Sin duda alguna, una solución al clásico problema de cualquier RTC. Esto y mucho más en este artículo.

La aparición en el mercado de los RTC trajo un cúmulo de soluciones muy importantes a los diseñadores que necesitaban “medir el tiempo” con la mayor exactitud posible. Una de las soluciones más populares fue el DS1307, ubicado dentro de una amplia lista de dispositivos que ofrecían, además, la ventaja de conectarse a cualquier microcontrolador mediante el popular bus I2C. Sin embargo, uno de los problemas habituales de estos componentes radicaba (y radica porque se continúan utilizando a diario) en las variaciones de la indicación horaria como resultado de la utilización de cristales resonadores poco apropiados. Es decir, entre varios cristales de una misma frecuencia (32,768Khz), los resultados pueden ser muy diferentes. A esto, si recordamos lo visto en el artículo del DS1307, se le suma la acertada elección del montaje del cristal teniendo en cuenta el largo de los pines de conexión, la puesta (o no) a GND del cuerpo del cristal y tantos “detalles” que acumulados entre sí deforman la medición horaria en valores importantes. Por ejemplo, dos cristales iguales, pero de distinto fabricante, pueden “atrasar” diferentes cantidades de tiempo en una semana. Por el contrario, dos “montajes” diferentes pueden provocar distintos “adelantos” en el mismo lapso de tiempo.

El DS1337 de Dallas Semiconductor no está exento de este problema y, al igual que su antecesor, el DS1307, necesita de atenciones especiales en lo que al montaje mecánico del cristal se refiere. Sin embargo, existe una versión que nos ofrece una solución a todos estos inconvenientes, el DS1337C. Si observamos con atención la hoja de datos, que el fabricante nos ofrece sobre el DS1337, encontraremos esta variante del componente que ya trae incorporado en su encapsulado al cristal. De este modo, los problemas relacionados con las variaciones horarias que siempre ocasionaba el montaje mecánico y eléctrico del cristal ya no serán un problema. De todos modos, no estamos hablando de que esta construcción lo transforme en un reloj de precisión y exactitud comparable a un reloj atómico sino que el diseñador tendrá una preocupación menos a la hora de considerar las precauciones a tomar mientras diseña el PCB que requiere la utilización de un RTC.

Como en cualquier sistema que trabaja a temperatura ambiente, las variaciones son inevitables y se encuentran comprendidas entre las 10 ppm (partes por millón) y esto equivale a valores cercanos a un minuto (o menos) en un mes. De todas maneras, temperaturas cercanas a 25°C proporcionan errores mínimos. En la Nota de Aplicación N°58 de Dallas Semiconductor (Maxim) (que te dejamos al pié del artículo) encontrarás la bibliografía necesaria para saber si estos dispositivos se ajustan a las necesidades de tu aplicación. Por supuesto, la precisión que se gana en el tiempo en cierto modo “se paga” con un encapsulado de mayor tamaño, aunque esta idea es relativa ya que, si observamos el resultado con atención, un encapsulado estándar más el cristal ocuparían el mismo espacio físico que el DS1337C. Otra diferencia importante, que posee este modelo de RTC respecto al DS1307, es la ausencia de conexión a una batería de respaldo para mantener el reloj funcionando al momento de desconectar la energía. Sin embargo, la tensión de alimentación “necesaria” del DS1337 permite “jugar” con esta posibilidad y, mediante un sencillo arreglo de hardware en la conexión de alimentación (por supuesto, con una batería de respaldo), podemos mantener nuestro sistema ajustado sin preocuparnos por la falta de energía. Observa:

DS1337_RTC_Introducción.avi

El circuito necesario para concretar esta construcción es muy sencillo, se basa en un PIC 18F25K20 y el programa está realizado con el software libre Amicus. Como se muestra en el video utilizaremos cuatro pulsadores para realizar los ajustes del RTC, del mismo modo que lo hacen los radio-relojes convencionales: un pulsador nos introduce en el menú de programación de la hora y la fecha, otro nos lleva a la programación de la alarma que mostraremos y dos botones estarán dedicados a subir y bajar las unidades hasta alcanzar la fecha y hora deseada, tanto para el funcionamiento normal como para la alarma. El modo de ajuste es muy sencillo y te lo explicamos de manera clara y práctica en el video final. Lo que debemos recordarte y aclararte es que el software está realizado de una manera simple y sin optimizar. Esto significa que está programado con instrucciones sencillas, reiterando las estructuras de las rutinas para programar cada registro dentro del DS1337C. El motivo de esto es reiterar lo explicado anteriormente. Tú optimizarás todo a tu necesidad. Además, realizarlo y mostrarlo de la manera en que te lo ofrecemos te ayudará a comprender la secuencia en que se realizan las lecturas y escrituras en los registros, así como la presentación de la información sobre el LCD, actualizada en todo momento.

El circuito, como te mencionamos, es el que utilizamos en nuestros montajes habituales y no supone complicación alguna, más allá del montaje del DS1337C sobre un PCB adaptador para trabajar de manera cómoda en el protoboard. De todos modos, la utilización de un DS1337 convencional en encapsulado DIP puede ayudarte a resolver este problema, aunque podrías tener inconvenientes con la exactitud del reloj, ya que estarás obligado a utilizar un cristal externo. Como puedes ver, el DS1337C es un circuito integrado muy sencillo de utilizar y te permitirá realizar cualquier tipo de contador de tiempo con elaborados sistemas de alarma. Podrás hacer desde temporizadores industriales para control de procesos, hasta un reloj despertador convencional. (No tan convencional, será único en el mundo: Estará hecho por ti). Si decides programar las dos alarmas tendrás a un controlador de puesta en marcha y detención automática de cualquier evento que requiera funcionamiento desatendido. Así como programas el horno microondas para que, al levantarte, el desayuno esté listo, podrás hacer lo mismo con procesos similares, desde apagar y encender luces en horarios programables hasta decidir en qué momentos harán funcionar las luces de un comercio luego de cerrar por la tarde. El DS1337C es un circuito que puede ayudarte en muchos desarrollos donde al tiempo lo manejas tú.

DS1337C_RTC_Alarma.avi

Código fuente + circuito tamaño grande:

Descarga

Hoja de datos del DS1337:

Descarga

Nota de aplicación N°58 de Dallas:

Descarga

avatar

Como me gustan esos adaptadores para usar los samples en los proboards. En cuanto al articulo no conocia ese integrado, a tener en cuenta en algun futuro proyecto. Saludos

avatar
avatar

Mario, excelente artículo. No me había percatado del hecho de que no se necesita cristal, lo cual es excelente!! Debe disminuir muchísimo los errores.

Saludos!!!

avatar
avatar

Muy bueno el proyecto Mario muchas gracias, pero el firmware no se puede descargar, DS1337C.rar' is unavailable. This file was deleted.

avatar
avatar

Muchisimas gracias por el articulo, de seguro hay varias aplicaciones en las que podemos usar este integrado; lo que mas me interesa es la programacion de la hora y fecha con los pulsadores, voy a revisar el codigo para mirar como lo haces y cualquier duda escribo en el foro.

Un saludo

Yesbond

avatar
avatar

Gracias Mario!!

No sabes cuantas veces me has salvado en algun proyecto, tus ideas siempre inspiran. Buen Trabajo sigue así.

P.S.
Me encanta las nuevas adiciones a la portada, en especial porque fui uno de los que sugerí los "Articulos Destacados". Esta si es una mejora!!

avatar
avatar

Por favor alguien puede facilitarme el email de Mario Sacco tengo, unas preguntas que hacerle

avatar
avatar

Muy bueno, muchas gracias por la información :D

avatar
avatar

Genial articulo!!!, si hubiera conocido este integrado antes!!!! me volvi loco para hacer funcionar el 1307 y todo por la dichosa capacitancia del cristal, vaya quebraderos de cabeza.
Sabeis como pedir samples del integrado??

avatar
avatar

Hola Mario!!!

Buenisimo el articulo y buenisimo el 1337. Los adaptadores para el 1337 los compras en algun lado o lo desarrollaste vos? es un tema a la hora de hacer algun diseño no contar con los adaptadores para realizar pruebas sobre el protoboard.
Muchas gracias por el articulo

avatar
avatar

disculpad yo escribo en pbp, hbusin y hbusout equivalen a i2cwrite y i2cread
gracias por contestar

avatar
avatar

disculpad, yo use pbp, me podiais decir si hbusin y hbusout equivalen a i2cread y i2cwrite en pbp
gracias por contestar

avatar
avatar

Hola Mario:

Una duda, se puede comunicar vía I2C el DS1337C con un PIC 16F870 el cual se alimenta con 5 volts?

Gracias

avatar

Debes iniciar sesión para publicar un comentario.