Autor Tema: DS1307, encendido y apagado de pic16lf877a  (Leído 2045 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado maigke

  • PIC10
  • *
  • Mensajes: 2
DS1307, encendido y apagado de pic16lf877a
« en: 23 de Agosto de 2007, 23:44:08 »
Saludos al foro  :o

 bien mi nombre es miguel y aunque ya tiene ratillo que ando por el foro no he escrito mensaje pues la mayoria de mis dudas, ya habian sido resueltas por otros usuarios, por lo que agradezco a todos que de una forma indirecta me han ayudado gracias

Tengo una pequeña idea, aunque no se que tan viable sea, o si alguien tuviera otra idea, con gusto la recibiré.

Pues bien tengo conectado un pic16lf877a con una lcd, un ds1307, un led, unos botones para ajustar la hora (ta grande pero espero meterle algunas otras cosillas XD), bueno la situacion es la siguiente

En la LCD se muestra la fecha y hora y tiene una alarma (hasta ahora un led), nunca activa el MCLR
ahora quiero que por medio de un boton por ejemplo conectado en RC0, active la lectura de la eeprom y muestre en pantalla la hora/fecha de encendido y apagado del sistema 
Si el apagado se realiza en el mismo dia (que eso será lo más seguro por las pruebas),
muestre todas  (aki tendre que usar más de un boton por que si son varias veces debe poder navegar en la lcd  :?)

ahora, por lo que he notado es que laeeprom no me va alcanzar, entonces debo hacer una rutina de reciclaje (es decir que cuando este llena la sobre escriba desde la posición inicial)

Lo del encendido esta fácil por que solo debemos leer el formato que envia el ds1307 al iniciar el programa y grabarlo en la eeprom

Lo dificil lo siento en lo del apagado, pues en cualquier momento puede ser apagado el sistema  :(
Yo pienso hacerlo de esta forma, ir ejecutando una rutina de grabacion de eeprom cada 5 o 10min de la hora actual del sistema, sin embargo esta escritura no tienen que bajar a la dirección siguiente de escritura, sino que debe escribirla en el mismo lugar  :shock: :shock:

asi de esta forma, si por ejemplo el sistema se apaga a las 8:03 y cada 5 min hace el respaldo de hora entonces me da una cierta tolerancia en la hora (3 min).

cuando nuevamente encendemos el pic, este leera que hay un apagado y entonces ahora si incrementa la posicion de memoria y escribe la nueva hora, esta vez de arranque.

Un problema aparente es que al leer o al escribir la eeprom tenemos un cierto retardo de algunos milisegundo, pero por esta razon es que uso el ds1307, para no perder esos milisegundos, aun así el experimento que toy haciendo no es crítico, así que siento que no sea importante el perder unos pocos milisegundos (20 si no mal recuerdo  :o)
Bueno esta es mi idea, voy a comenzar a jugar y les comento como me va, si alguien tiene alguna sugerencia, le agradezco

Miguel

Desconectado vszener

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2395
Re: DS1307, encendido y apagado de pic16lf877a
« Respuesta #1 en: 24 de Agosto de 2007, 06:22:42 »
Buenas!!! Si ya sabes la memoria eeprom de antemano del micro, es fácil que uses un almacenamiento de datos circular, cuando llega al máximo de almacenar datos, pues empieza por el principio.

Para almacenar los datos cuando se apague el micro, puedes usar la interrupción Brown-out Reset, esta función se puede configurar para estar contínuamente monotorizando la tensión de entrada al micro, cuando llegue a la tensión límite (expecificada en su data sheet), pues activa un flag y produce un reset al micro.

También puedes usar un driver externo para monotorizar la tensión de entrada, y cuando llegue a un limite establecido por ti, pues te de una señal.


Suerte!!! ;)
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: DS1307, encendido y apagado de pic16lf877a
« Respuesta #2 en: 24 de Agosto de 2007, 09:54:05 »
Si grabas en la eeprom cada cinco minutos me da que a los 9,5 años se terminan las 1000000 de operaciones de escritura, en caso que se puedan utilizar segun el datasheet  :mrgreen: :mrgreen:

Te sirve eso??

Ademas no estan contadas las grabaciones posibles por los cortes de tension...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado maigke

  • PIC10
  • *
  • Mensajes: 2
Re: DS1307, encendido y apagado de pic16lf877a
« Respuesta #3 en: 26 de Agosto de 2007, 13:55:39 »
Gracias por sus respuestas!!! :-/ Vszener y MGLSOFT

   Oye la interrupción por Brown-out no la conocia, muchas gracias, parace que esto me va a servir mucho!!!, vamos a probarlo a ver que tal sucede.

En el caso de la eeprom no siento que sea mucho problema, pues como me mencionas MGLSOFT el tiempo son 9.5 años, ahora el tiempo de vida del proyecto no creo que sea mayor a 5 años (espero que dure ese tiempo  :roll:), aunque ahora que lo mencionas, podria usar una eeprom externa, una 24c256 por ejemplo y así cuando termine su tiempo de vida  solo la quito del zocalito!!! y no me doy a tarea de darle en torre a la eeprom del PIC!!!
Gracias por sus consejos, vamos a ver como sale este proyectito

Saludos Miguel
 :mrgreen: