Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: aiwa_7 en 16 de Octubre de 2009, 20:58:05
Título: Reloj de tiempo real DS1307 no oscila
Publicado por: aiwa_7 en 16 de Octubre de 2009, 20:58:05
Saludos... :-/
Estoy trabajando en un proyecto donde requiero utilizar un RTC, especificamente el ds1307, con el cual estoy teniendo un problema... parece ser que todo marcha bien en principio, configuro los registros de cada uno de los parametros empleando el protocolo i2c, y de igual forma los mando a leer, en proteus parece funcionar correctamente, el led en el pin del oscilador enciende corectamente a una frecuencia de 1 Hz, el display que trae para el dispositivo ahi en proteus se modifica a los valores que le configure y en la lcd se mestran otros distintos, debido a que los mando a llamar directamente y estos estan en BCD pero si cambian, y el problema no es ese; si no que a la hora de programar el PIC y conectar todo el sistema, ya en fisico, este no trabaja, es decir, no oscila, si despliega los valores iniciales pero se queda asi, y el led nunca enciende... he visto algunas preguntas similares, pero veo que el tema se desvia y no se le da una respuesta concreta...
Agradezco de antemano la ayuda...
Título: Re: Reloj de tiempo real DS1307 no oscila
Publicado por: Suky en 16 de Octubre de 2009, 21:11:12
Estas usando la pila adicional para cuando se desconecte de la fuente? Si no es el caso ese pin debes conectarlo a GND.
Saludos!
Título: Re: Reloj de tiempo real DS1307 no oscila
Publicado por: aiwa_7 en 17 de Octubre de 2009, 16:15:37
hola de nuevo.... :-/
gracias por contestar suky... informo... esa consideracion ya se tomo y se hizo la prueba pertinente obteniendo el mismo resultado de mi problema... el sistema continua sin oscilar... por lo pronto sigo investigando para encontrarle solucion... y gracias por el interes en este tema... cualquier nuevo sintoma o solucion... mantengo informado y sigo al pendiente... gracias...
Título: Re: Reloj de tiempo real DS1307 no oscila
Publicado por: migsantiago en 17 de Octubre de 2009, 17:26:43
Prueba con un cristal de 32.768kHz nuevo. A veces los cristales con un pequeño golpe dejan de funcionar.
Título: Re: Reloj de tiempo real DS1307 no oscila
Publicado por: Cryn en 17 de Octubre de 2009, 17:48:39
Verifica también que tienes los pines correctos de SCL y SDA, a veces se nos cruzan y el circuito no funciona.
Quizá también falte algunos condensadores de desacoplo de 100nF en la alimentación de los integrados.
Un esquema y tu código vendría muy bien para poder ayudarte mejor
saludos.
Título: Re: Reloj de tiempo real DS1307 no oscila
Publicado por: Suky en 17 de Octubre de 2009, 18:45:13
Una consideración, el pin SQW/OUT es a colector abierto, ósea el Led debe ir conectado con su resistencia a Vcc ;-)
Saludos!
Título: Re: Reloj de tiempo real DS1307 no oscila
Publicado por: aiwa_7 en 20 de Octubre de 2009, 17:52:51
Que tal... Primero gracias por las soluciones propuestas, les comento: Con lo que respecta a pines no usados, si estoy tomendo en cuenta eso, y el que no estoy utilizando, el de Vbat, lo conecto a tierra, los cables de SCL y SDA estan correctamente conectados, al reloj y al pic, la consideracion del led, para observar la salida del SQW si esta a una resistencia y de ahi a Vcc, y con respecto al cristal, ya lo cambie incluso probando con un par de ellos y el resultado seguia siendo el mismo. Ahora, haciendo algunas prebas, obtuve nuevos resultados... normalmente le estaba escribiendo un 1 al registro de los segundos, y de esa manera al terminar de hacer la configuracion inicial, me desplegaba los valores que le escribia, pero no avanzaba... me encontre con que escribiendo un 1 en el bit 7 del mismo registro, el de los segundos, al termino de la configuracion el reloj si trabaja, no se observa aun el pulso del led pero si incrementa cada segundo; ahora el problema se transforma en algo diferente, y es que ningun valor de los que se despliegan coincide con los que se meten o escriben, al parecer ese cambio en el registro de los segundos ocaciona otra serie de cambios. Si alguien tubiera algna idea para este ya torcido problema jeje, ademas para lo del pulso en la salida SQW se lo agradeceria mucho...
Saludos...
Título: Re: Reloj de tiempo real DS1307 no oscila
Publicado por: Suky en 20 de Octubre de 2009, 18:18:36
Revisa el siguiente hilo (http://www.todopic.com.ar/foros/index.php?topic=13282.msg76855#msg76855), yo utilice la librería del maestro Red PIC y no tuve problemas.
Yo lo que agregué fue:
Código: C
void ds1307_set_out(char Data){
#ifndef USE_INTERRUPTS
disable_interrupts(global);
#endif
i2c_start();
i2c_write(0xD0);
i2c_write(0x07);
i2c_write(Data);
i2c_stop();
#ifndef USE_INTERRUPTS
enable_interrupts(global);
#endif
}
Para setear únicamente la salida SQW.
Si no usas C muéstranos el código para ver si encontramos algún problema ;-)
Saludos!
Título: Re: Reloj de tiempo real DS1307 no oscila
Publicado por: aiwa_7 en 20 de Octubre de 2009, 19:02:52
Pues esa opcion ya la habia contemplado, y me dio problemas con el compilador debido a liberias que ya habia creado, por estos conflictos decidi intentarlo de otra manera :D pero gracias por la sugerencia...
Título: Re: Reloj de tiempo real DS1307 no oscila
Publicado por: Suky en 20 de Octubre de 2009, 19:09:05
Que conflictos?
Título: Re: Reloj de tiempo real DS1307 no oscila
Publicado por: aiwa_7 en 22 de Octubre de 2009, 17:21:44
Que tal... pues conflictos con funciones que la libreria que el desarrollo trae, aparentemente no las reconoce o me marac errores en parametros, y cuando al fin logro ajustar al parecer eso, no me entrega los valores de los parametros que inicialmente le habia dado. Decidi desistir de esa opcion debido a este clase de problemas, que aunque son un tanto simples no les encontre una solucion concreta, y ademas por la razon de encontrar una rutina mucho mas simple dentro del mismo foro, la cual, me ha acercado mas a la solucion, de no ser por los problemas que anteriormente les comentaba... Gracias y saludos... :-/