Autor Tema: Rutina que busca errores en una 24lc256 y los corrija. ¿como?.  (Leído 2160 veces)

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

Desconectado remi04

  • PIC24F
  • *****
  • Mensajes: 657
Rutina que busca errores en una 24lc256 y los corrija. ¿como?.
« en: 17 de Octubre de 2011, 09:04:36 »
Hola a todos. Antes que nada quiero presentarme, mi nombre es Javi y me registro desde Sevilla, España. Llevo bastante tiempo en programación de microcontroladores sobre todo en ASM y PBP deseoso de empezar con CCS próximamente.

 Queria exponer una cuestion que llevo buscando por la web y el foro y no termino de localizar o entender. Resulta que tengo un programa que maneja un lcd 84 x 48 y resultó ser tan complejo que no me cabía en la rom de un 16f877. Finalmente depurando y reduciendo espacio y con ayuda de una eprom i2c conseguí meter todo en el 877. La eprom que utilicé fué una 24lc256 (32 Kb) para almacenar tablas de constantes, imagenes, textos y datos de control. Mi programa nunca escribe info en la eprom. la eprom solo se graba la primera vez y jamás se accede a ella para grabar nada. debido a ello la seguridad de los datos de la eprom es primordial. Trabajando en la placa board en ocasiones por provocar accidentalmente un corto en la linea de 5v he visto que algunos datos de la eprom se perdieron o modificaron fácilmente y la tuve que volver a regrabar. Sé que ello se soluciona con un buen sistema de filtrado electrico en el diseño del PCB pero visto lo visto no me fio. Me gustaria llegar mas allá y programar en el micro una rutina que lea la eprom en busca de errores y los corrija. Como es de 32 K y solo uso 9 podria grabar por triplicado y hacer que la rutina compare y corrija los datos que no coincidan con sus dos redundantes equivalentes. Tambien he pensado en implementar codigo CRC, ¿alguien sugiere una manera de hacerlo con codigo lo mas liviano posible??

Un saludo.
 



Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Rutina que busca errores en una 24lc256 y los corrija. ¿como?.
« Respuesta #1 en: 17 de Octubre de 2011, 10:52:07 »
Lo unico que se me ocurre es que cuando envies un dato requerir una lectura del mismo dato y compararlo para ver si son iguales, lo demas no puedes hacer nada mas, porque la 24lc256 no puedes modificar su programacion interna, es decir, puedes poner un crc pero la memoria no sabra que le estas enviando...

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Rutina que busca errores en una 24lc256 y los corrija. ¿como?.
« Respuesta #2 en: 17 de Octubre de 2011, 11:39:17 »
Con el CRC, cada 20 bytes, por ejemplo, podrías determinar si existe un error en esos bytes. Eso serviría para controlar y determinar si es necesario una actualización de los datos.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Rutina que busca errores en una 24lc256 y los corrija. ¿como?.
« Respuesta #3 en: 17 de Octubre de 2011, 12:53:23 »
Una primera aproximación podría ser poner por triplicado la información, y agregar un CRC como dice Suky.
Igualmente hay algorítmos muy avanzados para incluír información adicional que puede recuperar información dañada. Te recomiendo que leas:
Forward error correction

Por otro lado, si la memoria no se modifica jamás, por qué no deshabilitar la escritura físicamente mediante el pin WP?
« Última modificación: 17 de Octubre de 2011, 12:55:24 por BrunoF »
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado Noelillo

  • PIC12
  • **
  • Mensajes: 94
Re: Rutina que busca errores en una 24lc256 y los corrija. ¿como?.
« Respuesta #4 en: 17 de Octubre de 2011, 14:51:32 »
Yo estoy con algo parecido:
Por medio de un emisor RF de datos, envio la temperatura de 5 sensores (Un tren de informacion), y lo envio 3 veces. En el receptor lo comparo, si hay algun dato diferente, esos datos no los tomo y le digo que me los vuelva a enviar. Funciona bien...

lo de brunoF
"Por otro lado, si la memoria no se modifica jamás, por qué no deshabilitar la escritura físicamente mediante el pin WP?"

creo que es otra solucion buena.





Desconectado remi04

  • PIC24F
  • *****
  • Mensajes: 657
Re: Rutina que busca errores en una 24lc256 y los corrija. ¿como?.
« Respuesta #5 en: 17 de Octubre de 2011, 16:07:39 »
Pero el hecho de proteger mediante WP a vdd,  ¿ imposibilita la corrupcion de algunos bytes ante un picotazo electrico, interferencias o ruidos??. 

 saludos.

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Rutina que busca errores en una 24lc256 y los corrija. ¿como?.
« Respuesta #6 en: 17 de Octubre de 2011, 18:42:18 »
Pero el hecho de proteger mediante WP a vdd,  ¿ imposibilita la corrupcion de algunos bytes ante un picotazo electrico, interferencias o ruidos??. 

 saludos.
Pruebalo, es una buena solución.

Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 922
    • Mexchip
Re: Rutina que busca errores en una 24lc256 y los corrija. ¿como?.
« Respuesta #7 en: 20 de Octubre de 2011, 20:01:46 »
Pero el hecho de proteger mediante WP a vdd,  ¿ imposibilita la corrupcion de algunos bytes ante un picotazo electrico, interferencias o ruidos??. 

 saludos.
Pruebalo, es una buena solución.
Ojalá puedas probar y comentar tus resultados, puesto que de fallar ante picos e interferencias eléctricas, no habría ningún método que permitiera recuperar la información ante un error, lo único que podrías hacer es avisar de que hay inconsistencias para que se proceda a grabar nuevamente la información.
La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/