Pages: [1]   Go Down
Author Topic: Como saber la ultima posicion escrita en una eeprom?  (Read 774 times)
0 Members and 1 Guest are viewing this topic.
Cordoba
Offline Offline
God Member
*****
Karma: 40
Posts: 660
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

El que pregunta aprende, el que responde aprende a responder.

Offline Offline
Edison Member
*
Karma: 23
Posts: 1375
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

http://arduino.cc/forum/index.php/topic,79787.0.html
Logged

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

Spain
Offline Offline
Full Member
***
Karma: 0
Posts: 149
LED
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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".
Logged

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

Cordoba
Offline Offline
God Member
*****
Karma: 40
Posts: 660
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

El que pregunta aprende, el que responde aprende a responder.

Offline Offline
Edison Member
*
Karma: 23
Posts: 1375
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

¿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
Logged

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

0
Offline Offline
Edison Member
*
Karma: 8
Posts: 1040
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Trabajando en ...

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

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

Offline Offline
Edison Member
*
Karma: 23
Posts: 1375
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Es una mezcla entre DRAM y EEPROM, pero mucho mejor
Logged

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

0
Offline Offline
Edison Member
*
Karma: 8
Posts: 1040
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@chiva lo has probado alguna vez.?
Logged

Trabajando en ...

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

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

Spain
Offline Offline
Full Member
***
Karma: 0
Posts: 149
LED
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.

« Last Edit: December 11, 2011, 07:16:22 am by Razorblade » Logged

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

Offline Offline
Edison Member
*
Karma: 23
Posts: 1375
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@flico, no, pero a efectos prácticos es una EEPROM más rápida y con más durabilidad, no cambia nada
Logged

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

0
Offline Offline
Edison Member
*
Karma: 8
Posts: 1040
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Trabajando en ...

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

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

Cordoba
Offline Offline
God Member
*****
Karma: 40
Posts: 660
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

El que pregunta aprende, el que responde aprende a responder.

Pages: [1]   Go Up
Jump to: