El DS1307 de Dallas Semiconductor (Maxim) es una solución muy interesante cuando necesitamos trabajar con eventos que requieren puntualidad y exactitud a lo largo del tiempo. Este pequeño circuito integrado es uno de los más populares relojes RTC (Real Time Clock) del mercado por su sencillez de uso y por su confiabilidad a largo plazo. Preparado para ofrecerte la hora hasta el año 2100, esta semana agregamos a la entrenadora NeoTeo esta útil aplicación con la explicación en detalle de su construcción, características y ajustes. El DS1307 a fondo en este artículo.
-
-
La flexibilidad de trabajo que nos ofrece el bus I2C hoy nos trae una aplicación muy útil e importante para los momentos en que necesitamos controlar dispositivos o aplicaciones en las que la exactitud horaria es un factor fundamental. El DS1307 de Dallas Semiconductor (Maxim) es un dispositivo que se conoce como “Reloj de Tiempo Real” (Real Time Clock – RTC) que opera a través del bus I2C y que, además de brindarnos la hora con minutos y segundos, posee un calendario que contempla los años bisiestos hasta fin de siglo, es decir, hasta el año 2100.
Entre las características destacadas, posee una salida (configurable por software) que, en nuestro caso, la utilizamos como “segundero luminoso”, y la posibilidad de trabajar con una pequeña batería para almacenar los datos mientras el sistema se encuentra desconectado de la alimentación. Además, esta pequeña alimentación de respaldo permite mantener funcionando el oscilador maestro del reloj con un consumo ínfimo de 300nA, según su hoja de datos. Una simple batería de Litio CR2032 puede brindarnos un funcionamiento satisfactorio durante 10 años. ¿Te parece poco? Conectar un artefacto que construimos hace tres años y que siga estando siempre ajustado en fecha y hora es algo muy interesante de experimentar.
DS1307: Un completo reloj de precisión en un encapsulado de 4 pines por lado
Este curioso circuito integrado es mucho más que un simple segundero o un contador de minutos: es un reloj que podemos incorporar a nuestros desarrollos para que, además de informar la hora en un visor, sea capaz de activar periféricos o recordar actividades con absoluta precisión. Un ejemplo: que nos recuerde que cada día a determinada hora se ponga en marcha un motor, una luz o cualquier dispositivo externo que realice un trabajo por nosotros, o también que el día 15 de agosto de cada año nos recuerde el cumpleaños de algún amigo. Por supuesto que para el desarrollo de este artículo y la explicación paso a paso de cómo aprender a utilizar este genial reloj utilizaremos la placa entrenadora NeoTeo y el súper-cómodo sistema de carga de archivos por USB con el método de BootLoader desarrollado en el artículo anterior. No más palabras, observa este video. Esto haremos hoy:
Lo primero que haremos entonces es construir el hardware. Habrás notado en las imágenes una memoria EEPROM 24C04, compartiendo la placa con el DS1307. Por el momento no utilizaremos este dispositivo, pero tuvimos la idea de colocarlo en la placa para futuras aplicaciones gracias a que este tipo de memorias también trabajan con el protocolo de comunicaciones I2C. En próximos montajes combinaremos el uso del reloj con eventos grabados en la memoria, como pueden ser alarmas múltiples seleccionadas por el mismo PIC o para utilizarla como banco de datos generales que pueda conservar información a pesar de que el equipo conectado pierda el suministro de energía. Por ejemplo, podemos citar el caso de un sistema de semáforos sincronizados que deben manejar un tráfico variable, es decir, variar sus tiempos de operación de acuerdo a las horas de mayor tránsito. A esto podemos sumarle la posibilidad de dejar liberada la circulación vehicular a partir de un horario determinado durante la noche hasta las primeras horas del día siguiente, y todos estos datos deben ser almacenados en un lugar seguro, a prueba de cortes energéticos y con la seguridad de inicializar su funcionamiento en perfecta sincronía horaria. Para eso, nada mejor que una EEPROM 24Cxx.
El circuito de conexiones para la placa del DS1307
El circuito es muy sencillo de organizar y comprender. Tanto el DS1307 como la memoria 24C04 comparten las conexiones SDA y SCL, respectivamente, mientras que la tensión de alimentación es filtrada C2 - L1 - C1 para eliminar ruidos extraños en el circuito que pudieran llegar a corromper las tramas de datos. Esta prevención la incrementamos con el diseño de un circuito impreso generoso en planos de tierra. La salida SQW/OUT necesita una resistencia “Pull-Up” para su funcionamiento y a la vez se encarga de excitar a T1 para que el LED nos sirva de “segundero luminoso”. Recordemos que esta salida del DS1307 es programable y pueden obtenerse allí otros submúltiplos de 32768Khz para otras aplicaciones específicas. Por su parte, en el pin 3 conectaremos una batería de Litio tipo CR2032 que nos permitirá el funcionamiento del DS1307 cuando la tensión de alimentación Vcc no esté presente. No dejes de colocar un receptáculo apropiado para permitir una remoción cómoda de la batería cuando sea necesario cambiarla. Además, si te decides soldarle pequeños terminales para conectarla a la placa, debes tener mucho cuidado de no pasarte de temperatura para no provocar un accidente y la rotura de la batería.
Una pequeña batería puede conservar el ajuste del DS1307 durante muchos años
Una consideración especial se debe tener a la hora de montar el cristal de 32768Khz. Primero debes saber que será muy difícil lograr un circuito impreso óptimo para obtener una precisión ideal en el funcionamiento del reloj. Luego, debes comprender también que es de suma rareza encontrar cristales que resuenen a la frecuencia exacta que indica su nomenclatura. Es decir, lo normal será encontrar cristales con una “tolerancia” de error que a lo largo de los días (o meses) se haga notable en algunos segundos de atraso o adelanto de la hora grabada. Si las variaciones son de muchos minutos en pocas semanas, sin dudas debemos cambiar el cristal por otro de mejor calidad. Pero si optas por un cristal común (sin demasiada selección especial), con un lazo de alambre conectado a GND (como ves en la imagen superior), con un buen plano de tierra en los alrededores de su conexión (tal como indica la hoja de datos del DS1307) y con un largo adecuado de los pines de conexión, debes lograr una pequeña variación de pocos segundos en uno o dos meses. NUNCA obtendrás una precisión absoluta pero al menos puedes aproximarte mucho a un excelente funcionamiento. Observa los planos de tierra en el circuito impreso.
La placa terminada vista desde el lado del circuito impreso (lado solder)
En el párrafo anterior mencionamos que entre los puntos destacados para obtener un correcto funcionamiento del DS1307 está el largo de los pines de conexión desde el cristal hasta el IC. Esto significa dos cosas: en primer lugar, que las vías de cobre del impreso entre un dispositivo y el otro DEBEN ser lo más cortas posibles y, en segundo lugar, que los pines del cristal NO DEBEN ser tan cortos como sea posible (en su conexión hacia el impreso). Parece una contradicción, pero la explicación está en que al acercar o alejar los pines del cristal entre sí, estamos provocando variaciones de capacidad parásita entre ambos conductores. En la práctica y en los instrumentos de medición de frecuencia, esto puede ser despreciable y no afectar en nada al oscilador maestro. Pero en los meses de funcionamiento de nuestro reloj, unos pocos Hertz de variación pueden significar varios segundos (o minutos) de desfasaje horario. Observa la imagen anterior para apreciar el largo aconsejado para los pines del cristal. No hay que exagerar, ya que con un milímetro de variación podemos resolver todo nuestro problema. De lo que puedes estar seguro es que conocerás la posición exacta de estos pines luego de algunas semanas de funcionamiento del equipo.
La placa instalada sobre la entrenadora y lista para comenzar a funcionar
El resto del montaje no merece mayores comentarios. En nuestro ejemplo utilizado para la entrenadora NeoTeo con el PIC 18F2550, hemos empleado el conector específico que dejamos reservado para las conexiones dedicadas a dispositivos que trabajen por bus I2C. La imagen superior (como el video mostrado al inicio del artículo) nos muestra que la placa se puede insertar de manera muy fácil, quedando en una posición cómoda de trabajo y visualización sobre el display LCD que utilizaremos para obtener los resultados de este trabajo. Si eres un fiel seguidor de nuestros proyectos y vienes realizando las placas de la manera que mostramos en los artículos relacionados a esta entrenadora, al final encontrarás el PDF para descargar que contiene el dibujo propuesto para realizar el circuito impreso de este interesante accesorio.
Hasta aquí hemos visto el circuito necesario para poner a funcionar un DS1307. En la próxima página veremos como es la programación de sus registros y su funcionamiento en detalle. ¡Avanza a la siguiente página!
-
¿Y tú, qué opinas?
-
#1mindmaster sábado, 19 de junio de 2010, 19:01
interesante el aparatito me pase la tarde de hoy armandolo pero en ves de una pantalla preferi algo mas tradicional le agrege unos pequeños(pero muchos) engranajes mecanicos ademas de un sistema de alarma esta bien padre y todo pero tengo que buscar una pequeña carcasa para la maquina
gracias mario otra ves le diste sentido a mi tarde del sabado =) -
#2
-
#3kevenisac sábado, 19 de junio de 2010, 19:04
Hola Mario,
Cada vez estas agregando más aplicaciones sobre los Pics, el tema de la electrónica se pone mas interesante. Me gusta la electrónica, aunque mi trabajo no tiene nada que ver con ésta. En mis ratos libres me dedico a aprender y/o probar circuitos como los que publicas.
Saludos amigo Mario! -
#4AdlF14 sábado, 19 de junio de 2010, 19:20
io trabaje con este rtc en la esc pero tuve un problema k no resolvi xk jamas volvi a utilizarlo... :( bueno lo k me pasaba es que a la hora de desconectar todo el sistema el reloj o no me guardaba la hora o lo hacia mal y no se a que se debiera...
mi programa funcionaba de lo lindo y hacia todo lo k debia pero a la hora de quitar la alimentacion y dejar solo la bateria de respaldo mi reloj valia queso xD...
como le hago para madarles el codigo??? una vez k lo encuentre xD -
#5Maggi domingo, 20 de junio de 2010, 00:24
Mario: El fuego sagrado te está quemaaaandooooooo!!!!! Buenísima nota.
Jukinch.
-
#6invitado domingo, 20 de junio de 2010, 00:38
#1Pobre tipo este, si que es patetico y da mucha lastima, no tiene ni amigos ni novia seguramente
-
#7Ragdem domingo, 20 de junio de 2010, 02:50
Espectacular! justo que estoy entrando en el mundo de los PIC, esto me viene barbaro, para la computadora de abordo que me estoy armando para mi auto :D
excelente! -
#8mindmaster domingo, 20 de junio de 2010, 04:01
#6de verdad que gente como tu me hace hervir las pelotas el hecho de tener un hobby no significa que nadie sea un inepto social que no pueda tomar la luz del sol por estar pegado a una pc las 24 horas del dia.
dime tu que haces acaso eh??? puedes modificar algunos de los diseños de mario no verdad porque para ti es mas importante estar trolleando que aprender algo util de verdad tu si me das lastima porque parece que eres tu el que no tiene amigos o una vida propia y tienes que estar haciendo estas tonterias para evitar la realidad.
me das mucha pena MUCHA O"o
_ -
#9imported_rafazed domingo, 20 de junio de 2010, 07:41
#1Dalay amigo mindmaster dalay!!
Déjalo que es un troll, mejor envía un mensaje a contacto de Neoteo para que borren este comentario, ponte a celebrar que ya me dieron de alta en el hospital después de una operación en el apéndice el doctor dijo que puedo recuperarme desde casa asi que lo primero que hice fue agarra mi portátil y actualizarme en neoteo y mi blog.
hombrequepiensa.blogspot.com -
#10AJA domingo, 20 de junio de 2010, 09:14
#9Pobres tipos estos, no tienen vida social ni nada, que pena vivir todo el dia frente la pc navengando en Internet.
-
#11Dows domingo, 20 de junio de 2010, 21:08
Con perdón pero ... joder que crack!!
Estos artículos son dignos de cualquier revista de electrónica de las serias (y caras!).
Por cierto, se pueden proponer temas? Porque a mi ahora me gustaría trastear con una batería de esas 'lead-acid' y he visto que en Neoteo había un par de artículos, uno con la descripción de como funcionaban y otro con un cargador-monitor de carga. Me pregunto si no sería descabellado hacer otro post resumiendo los dos anteriores y modificando el cargador para que funcione en uno u otro régimen de carga según el estado de carga de la batería (una de 12V x ejemplo ;D).
En fin, otro artículo alucinante. Un saludo! -
#12
-
#17svr lunes, 21 de junio de 2010, 11:23
#4Escribe bien amigo, date a respetar, tu comentario está asquerosamente mal escrito.
-
#18kianji lunes, 21 de junio de 2010, 14:02
Me encanta, creo que seria bueno como una versión en pdf para imprimir y tener un carpeta de proyecto como la revista de electrónica.
-
#19AdlF14 lunes, 21 de junio de 2010, 18:24
#17escribo asquerosamente mal para que idiotas perfeccionistas juzguen lo que a nadie le importa
si se entiende la idea es lo que importa y punto
svr?? que diablos significa?? -
#20
-
#21Freddy_Mancilla sábado, 26 de junio de 2010, 23:09
Como se puede hacer para imprimirlo a tamaño real? yo por mas que lo intento siempre me sale muchisimo mas grande.un saludo
-
#22
-
#23Vale_cs lunes, 13 de septiembre de 2010, 03:55
Hola soy nuevo en el foro, me interesa la aplicacion estoy trabajando con PIC18F2520 que me llegaron de muestra y estaba buscando un reloj de tiempo real y llegue aqui, saludos cordiales desde México.
-
#24German2520 lunes, 04 de octubre de 2010, 00:31
#1Hola estoy implementando el circuito con el Pic182520 pero tengo duda en la parte de la inductancia que valor debo conseguir o que matricula me recomiendan
-
Cargando...
-
nuevo comentario
Nombre Campo obligatorio
Email Escriba una dirección de correo electrónico con el formato sunombre@ejemplo.com.
Campo obligatorio
-



