TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: skyseb en 27 de Enero de 2009, 09:16:26
-
Antes que nada contexto:
PIC18F4550
DS1307 - Conectado al I2C
24LC256 - Conectada al I2C
El bus I2C tiene los pullups conectados de 10k.
La memoria la uso para almacenar valores adc.
Luego agregé el modo USB bulk para descargar la memoria, el cual anda de maravilla tanto en MS XP como en MS Vista Home.
El circuito del usb es simple tengo conectado D+,D- y masa solamente porque no requiero alimentacion del USB. (Anda bien.)
Con la inclusion del USB, se me presentó el siguiente problema:
Cuando descargo la memoria 24LC256 con el USB.... el DS1307, se tilda.. de dos formas diferentes:
o bien se clava en la hora
o bien se resetea a 01/01/00 00:00:00: y se clava.
La memoria se descarga correctamente porque luego la leo en el willem eeprom, y los binarios son iguales.
Es decir, en funcionamiento normal, el sistema mantiene la fecha y la hora correctamente y almacena en la memoria correctamente los datos, pero luego dedescargar la memoria, pasa eso con el RTC.
Me comentaron que puede ser por caida de tensión en el RTC, o bien porque el cristal este mal.
¿Alguien se le ocurre como puedo solucionar esto, o al menos una idea del problema.?
Saludos y muchas gracias.
-
Al compartir las lineas SDA y SCL seguramente cuando le mandas un comando a la 24lc256 para que descargue la memoria le estas sin querer mandando algo al ds1307 que lo interpreta como reset . Prueba de levantar una pata (SCL por ejemplo del ds1307) y luego del volcado volver a conectarla y comprobar si no se reseteó.
Otra cosa que podrias hacer es inhibir la escritura del ds1307 (seguramente la trae) una vez lo hayas puesta en hora.
-
yo tenia algo parecido cuando leia la eeprom el rtc me mostraba 85:85:85 lo que hice fue cambiarle las resistencia pull up de 10k por unas de 4.7k , ya que me acuerdo funcionaba bien con una eeprom 24c16 y fallo cuando le puese la 24lc256 proba y me avisas
-
Estas usando el pin VBat del RTC? Si no lo estas usando, puede ser por la baja caida, te recomiendo ponerla. No olvides tb el condensador de 104 en su pin VCC con GND. Y usa resistencias de pull-up de 4.7k, mejora los tiempos de los pulsos.
Yo tengo algo similar solo que como necesito usar la maxima frecuencia en la memoria (400Khz) lo tengo separada del RTC, ocea, la memoria por hardware y el RTC por software.
Suerte.
-
creo que es hasta 2.2K mucho mejor para pull-up del ds1307
-
OK cuando pueda lo pruebo..
Note algo raro, yo estaba trabajando con una vieja fuente de pc.
Estando esta apagada pero enchufada cuando toco la masa.. me pega alta patada... re loco.. supongo es un capa o algo asi.
Esta semana estuve trabajando colgado de una bateria de 9volts.. y haciendo descargas con el usb,, y realmente note al rtc mas estable y nose reinicio la fecha ni nada.
Voy a ir verificando todo cuando regrese demis vacaciones.
Saludos.
Gracias por las respuestas