Arduino Forum

International => Español => Topic started by: maxid on Dec 09, 2011, 06:02 am

Title: Como saber la ultima posicion escrita en una eeprom?
Post by: maxid on Dec 09, 2011, 06:02 am
Quiero hacer un log de datos, en una pequeña eeprom externa pero no encuentro la manera sin usar una dirección fija donde ir anotando la ultima posición escrita, digo esto porque quiero alargar la vida de la memoria sin reescribir permanentemente esa posición.
Existe otra forma de hacerlo, como leer un valor 0xFF después del borrado?
Title: Re: Como saber la ultima posicion escrita en una eeprom?
Post by: chiva on Dec 09, 2011, 10:57 am
http://arduino.cc/forum/index.php/topic,79787.0.html
Title: Re: Como saber la ultima posicion escrita en una eeprom?
Post by: Razorblade on Dec 09, 2011, 02:56 pm
Os ha dao por querer hacer magia con las memorias. :smiley-mr-green:

Pues si vas a escribir tantos cientos de veces como para poder dañar unos bytes indicadores de posición, lo que se puede hacer es utilizar más bytes para indicar la posición. Por ejemplo cuando ya has escrito X veces esos bytes, dejarlos ya sin uso y que pasen a ser otros bytes distintos los que indique la posición, y así sucesivamente de X en X veces.
De hecho creo que es lo que propone uno de los documentos que ha enlazado chiva, en una sección que pone "Extending EEPROM Life".
Title: Re: Como saber la ultima posicion escrita en una eeprom?
Post by: maxid on Dec 11, 2011, 03:31 am
Gracias por las respuestas, pero no es lo que busco, si bien en la discusión que mencionan, me queda claro que puedo usar un valor como fin de linea.
En realidad no es que quiera hacer magia con las eeprom sino mas bien simplificar el codigo, se me ocurria que al iniciar el programa leo la memoria hasta encontrar, digamos 0XFF, lo apunto en una variable y la incremento en la siguiente escritura, pero no conozco que valor toma una memoria eeprom cuando se le borra por completo.
Los datos que voy a guardar son 10 caracteres de una tarjeta + la hora que puede ser en BCD, y usaria una memoria FRAM.
Esa es mi idea, pero acepto cualquier experiencia, Gracias por su tiempo
Title: Re: Como saber la ultima posicion escrita en una eeprom?
Post by: chiva on Dec 11, 2011, 12:27 pm
¿Y no es lo mismo buscar los carácteres fines de línea/datos hasta no encontrar uno?
De todas maneras las FRAM se pueden escribir muchisimas más veces que una EEPROM
Title: Re: Como saber la ultima posicion escrita en una eeprom?
Post by: flico on Dec 11, 2011, 01:01 pm
Nunca había oído lo de FRAM. Que es una memoria aparte de la SRAM?
Title: Re: Como saber la ultima posicion escrita en una eeprom?
Post by: chiva on Dec 11, 2011, 01:09 pm
Es una mezcla entre DRAM y EEPROM, pero mucho mejor
Title: Re: Como saber la ultima posicion escrita en una eeprom?
Post by: flico on Dec 11, 2011, 01:12 pm
@chiva lo has probado alguna vez.?
Title: Re: Como saber la ultima posicion escrita en una eeprom?
Post by: Razorblade on Dec 11, 2011, 01:14 pm
maxid, tu planteamiento es válido siempre y cuando nunca vayas a guardar en la memoria el valor 0xFF en algún byte, y te asegures de que con la memoria borrada todas las posiciones tienen ese valor.

La FeRAM se parece más a la DRAM, aunque la FeRAM cuando hay que refrescarla es al leer o escribir solamente.

(http://img26.imageshack.us/img26/7420/memoriasv.jpg)
Title: Re: Como saber la ultima posicion escrita en una eeprom?
Post by: chiva on Dec 11, 2011, 02:24 pm
@flico, no, pero a efectos prácticos es una EEPROM más rápida y con más durabilidad, no cambia nada
Title: Re: Como saber la ultima posicion escrita en una eeprom?
Post by: flico on Dec 11, 2011, 06:08 pm
No lo decia para pedir la memoria y probarlo.
Gracias @chiva
Title: Re: Como saber la ultima posicion escrita en una eeprom?
Post by: maxid on Dec 12, 2011, 12:57 am
las que tengo son unos processor companion, de la mnarca ramtrom, que traen en el mismo encapsulado RTC, watch dog, 2 contadores de eventos y 32k de FRAM el modelo que consegui es el FM31256 en 5v e i2c.
Con respecto a la pregunta original, era saber si alguien con mas experiencia hizo algo similar, leyendo los otro hilos vi con buenas ganas de poner como un fin de registros, teniendo en cuenta que nunca deberia de ingresar un 0xff o una cierta secuencia