Go Down

Topic: Como saber la ultima posicion escrita en una eeprom? (Read 830 times) previous topic - next topic

maxid

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?
El que pregunta aprende, el que responde aprende a responder.

chiva

Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

Razorblade

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".
Arduino Uno (R2fix) / Duemilanove (328p)
Ethernet Shield SD (v5)

maxid

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
El que pregunta aprende, el que responde aprende a responder.

chiva

¿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
Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

flico

Nunca había oído lo de FRAM. Que es una memoria aparte de la SRAM?
Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

chiva

Es una mezcla entre DRAM y EEPROM, pero mucho mejor
Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

flico

Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

Razorblade

#8
Dec 11, 2011, 01:14 pm Last Edit: Dec 11, 2011, 01:16 pm by Razorblade Reason: 1
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.

Arduino Uno (R2fix) / Duemilanove (328p)
Ethernet Shield SD (v5)

chiva

@flico, no, pero a efectos prácticos es una EEPROM más rápida y con más durabilidad, no cambia nada
Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

flico

No lo decia para pedir la memoria y probarlo.
Gracias @chiva
Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

maxid

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
El que pregunta aprende, el que responde aprende a responder.

Go Up