TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: neosud en 17 de Diciembre de 2004, 21:41:00
-
HOLA AMIGOS DEL FORO,ESPERO TODOS ESTEN BIEN Y CON ANIMOS PARA ESTAS FIESTAS Q SE APROXIMAN.
QUISIERA HACER UNA CONSULTA CON RESPECTO AL USO DE LA MEMORIA DE DATOS EEPROM DEL PIC16F84A, ESTOY USANDO ESTE PIC PARA HACER UN CONTADOR DE 3 DIGITOS CON LA OPCION DE RECUPERAR LOS DATOS ANTE UN FALLO DE ALIMENTACION DEL SISTEMA, HE TRATADO DE HACERLO SIN EXITO, ESTOY EN UN LIO TERRIBLE CON LA MEMORIA, CONSIDERO HABER RESPETADO LAS PAUTAS NECESARIAS PARA Q FUNCIONE PERO, NO FUNCIIONA COMO DESEO.
EL INCREMENTO DEL CONTADOR DEPENDE DE UNA SENAL DE ENTRADA COMO UN PULSADOR CON LA POSIBILIDAD DE MANDAR LA VISUALIZACION A 000 ANTE LA PULSACIION DE OTRO PULSADOR Y POR SUPUESTO MANTENER EL ULTIMO VALOR DEL CONTADOR ANTE UN FALLO DE ALIMENTACION AL SISTEMA.
HE INTENTADO HACERLO EN PBASIC PLUS, PERO NO FUNCIONA, LUEGO INTENTE EN ASEMBLER, SUCEDIO LO MISMO, PLEASE ALGUIEN A PASADO POR ESTO?, PODRIAN AYUDARME AL RESPECTO, SI PUEDEN AYUDARME CON EL PROGRAMA, EXCELENTE.
CUANDO HAGO EL PROGRAMA PARA Q CON EL PULSADOR SE INCREMENTE LA CUENTA FUNCIONA CORRECTAMENTE, MANDO ALMACENAR EN LA EEPROM LOS DIGITOS HASTA ALLI TODO BIEN, PERO TODO FUNCIONA MAL CUANDO SE LEE LA EEPROM Y VISUALIZAR EN LOS DISPLAY.
ANTERIOEMENTE REALISE ALGO APARENTEMENTE MAS COMPLICADO PARA MI COMO UN CONTADOR DE 6 DIGITOS PERO PARA MOSTRAR EN EL LCD UTILIZANDO LA EEPROM PARA RECUPERAR LOS DATOS, TODO FUNCIONO EXCELENTE, HE APLICADO LA MISMA LOGICA PARA CON LOS DISPLAY Y NADA.
YA ESTOY PREOCUPADO, NO SE COMO SOLUCIONAR ESTO.
LES AGRADECERIA MUCHO SI PUEDEN AYUDARME AL RESPECTO.
UN ABRAZO A LA DISTANCIA.
-
Con mucho gusto te ayudamos pana, sube tu codigo para que todos los del foro podamos ayudarte.
Un COMENTARIO extra es, no es bueno estar escribiendo y leyendo(cada variable de contador) de la eeprom, ya que si el pic esta funcionando bastante tiempo va a volar las celulas de la eeprom(Recordemos que tienen un periodo de vida.. puedes hacer un calculo por conteo por minuto por dia.. entre el tiempo de lectura y escritura que tiene una eeprom...) interna del dispositivo... si quieres un sistema con respaldo contra fallas de voltaje (guardando el valor o los valores constantemente ), te recomiendo mejor usar una Ram estatica.
Salu2
-
gracias por su comentario en cuanto a la escritura y lectura de la eeprom del pic, aquel dia despues de leer su comentario hice un nuevo intento con el programa siguiendo su sugerencia y funciono, hice el programa en pbp, en asembler aun sigo con el problema, luego le envio el programa para ver donde esta la falla.
Gracias por su apoyo.
saludos a la gente del foro
-
Yo iría un poco más lejos que mi amigo Lager, complicando un poco el hardware poniendo un detector de "fallo de alimentación" y en ese momento con la ayuda de un condensador "gordo" grabamos la eeprom. Así durará toda la vida esa eeprom.
Saludos
Ricky
-
hola Ricky su sugerencia es muy buena, pero como asi podria hacerlo, podria recomendar un hardware o una pagina donde encontrar la informacion necesaria para su implementacion y prueba?
Gracias y saludos
-
Oye ricky eso seria perfecto

, podrias poner un ejemplo o explicar un poco mas?, me intereza esa forma de aprovechar la eeprom interna sin llegar a el extremo que plantie.
Salu2 panas
-
La idea básica es usar un comparador del tipo LM311 o cualquier operacional de bajo coste.
Se trata de poner un nivel de tensión de referencia en un pin y la tensión que fluctua y se va en otro. Estas tensiones se pueden igualr con divisores resistivos. Si la alimentación cae por debajo de un valor el comparador bascula y el micro detecta ese cambio y graba los datos en ese momento, solo se necesitan unos milisegundos para grabar.
Para implementar esto lo mejor es alimentar el circuito a 12 voltios, luego se regulan a 5 para el funcionamiento del micro y demás perifericos. en el comparador cogemos la referencia de 5v y la alimentación de 12v la dividimos con un divisor resistivo para que en la otra entrada del comparador haya 7v. También dotaremos la señal de 5v con un condensador electrolitico de 1000uF o mayor para dar estabilidad al sistema. La salida Open colector del comparador la llevamos a 5v con una R y de aquí al pin del micro que detecta el fallo de potencia.
El funcionamiento es el siguiente: cuando comienza a caer la tensión de alimentación lo hace lentamente debido a los condensadores de filtro y cuando llega a 10 voltios (en este punto todavía funciona perfectamente el microcontrolador) el pin del comparador de 7V llega a los 5v y en el instante siguiente el comparador bascula proporcionando la información al micro, en ese momento se graba la info.
Una variación de esta idea es usar los comparadores analógicos de los micros para ahorrar componentes externos (el del 16F628 se puede usar).
No tengo ninguna referencia de página, ni lo he implementado, pero esto estoy seguro que funciona sin problemas.
Saludos
Ricky
Madrid-España
-
saliendo solo por un moemento de la eeprom quisiera notar algo q me paso cuando estuve realizando esta aplicacion con la eeprom.
anetriormente he realizado algunos programas en pbplus y pude observar q tambien se genera el archivo con la extension .asm y otros mas, en estos programas se compilan bien con el mplab v5.20, pero cuando ya utilizo la eeprom y quiero compilar se generan muchos errores, como asi?, no siempre se generan los archivos .asm?, alguien lo ha solucionado, o es cuestion de realizar algunmos cambios o incluir algunas librerias en el pbplus, agradecerìa si pudieran ayudar al respecto.
Saludos;
-
Yo tambien e hecho lo mismo pero no me a dado error, se supone que hay que llamar el Asm desde el mplab y donde este este mismo deben estar la libreria PPB que la inclye como INC a su ves esta incluye la lpb que esta dentro del inc , en teroria deberia de compilarte ya que todo lo que necesita esta ahi, has probado con el mpasm que viene dentro del compilador??? abriendo el archivo asm generado y compilandolo?
PERFECTO pana ricky, muy buena forma de resolver esa limitacion que veia.. nada mas tenga tiempo e implemento la rutina con el comparador del micro... la cosa es que necesitaria estar comparando cada determinado tiempo.... seria mejor con un comparador trabajando solo no?? que tal si cuando comparo estaba bien y justo ene se momento se va la luz y no guarda nada... se podria comparar temporizando con interrupcion.. ero creo que seria mas seguro si usamos un comparador como GUARDIA siempre trabajando??? como ves?
Un abrazo panas
-
Si el sistema tiene que ser seguro 100% y además queremos liberar al micro de todas esas tareas improductivas usamos comparador fuera con ataque por interrupción. Si queremos ahorrar componentes pues el comparador del micro. De todas formas nosotros podemos retardar la caida con condensadores gordos y según sea nuestro programa así le dará tiempo a chequear sin problema o no durante ese tiempo de caida de alimentación.
saludos
Ricky
-
PERFECTOPANA, entonces para evitar desgracias..
usamos un comparador externo.. sos un genio Ricky
.
Un abrazo pana
-
Hola :
estimados.. veo un problema en la teoria original,la grabacion en eeprom es LENTA y dependiendo de la velocidad del contador puede traer problemas grabar el dato entrante cada vez que sucede el conteo .
Con respecto a la segunda teoria del comparador externo habria que ver si le da el tiempo ante una falla de alimentacion para llegar a grabar el dato,lo que se me ocurre seria una pequeña bateria de backup que se accionase ante una falla ,es decir un simple diodo desde la bateria de backup hacia la alimentacion ,si la alimentacion principal se cortase entraria la bateria sin que te enterases y si lo quieres hacer mas sofisticado y detener el sistema completamente guardando el dato es simple ,un sensor de corriente en serie con el diodo de la bateria que accionaria una pata del pic dedicada a ejecutar la rutina de grabacion del ultimo dato y fin de actividad por fallo de alimentacion ....Pero piensa que con una bateria podrias llegar a funcionar casi por mas de 10Hs sin que te enterases que ocurrio un fallo de alimentacion...cuando esta se reestablezca el simple diodo hara que ya no haya mas conduccion desde la bateria a tu circuito y todo segira funcionando.
Saludos
khasistos
-
Otra genialidad
ahora del pana khasistos, gracias 
Salu2 panas
-
Hola.
Las genialidades son suyas MAESTRO .....las mias son solo viejas ideas....
Abrazos
Khasistos
-
GRACIAS AMIGOS POR SUS AYUDA, DE CIERTO HE APRENDIDO REALMENTE CON SUS SUGERENCIAS Y EXPERIENCIAS, ESPERO PODER CONTRIBUIR IGUALEMNTE AL FORO.
SALUDOS
-
Bienvenidas nuevas ideas pana Neosud,
Salu2