Autor Tema: Cuidados con memoria Flash  (Leído 3416 veces)

0 Usuarios y 4 Visitantes están viendo este tema.

Desconectado IngRandall

  • PIC18
  • ****
  • Mensajes: 383
Cuidados con memoria Flash
« en: 24 de Junio de 2013, 10:10:04 »
he estado trabajando mucho con las memorias flash, pero me he encontrado con que aveces se me borra y no se por que, por eso quisiera saber en cuanto a programación que cuidado debemos tener al momento de escribir y leer de una memoria flash, para tratar de minimizar los problemas.

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Cuidados con memoria Flash
« Respuesta #1 en: 24 de Junio de 2013, 12:26:41 »
Lo normal es que las memorias flash se escriban por sectores, quizas no la estas escribiendo de forma correcta y por eso se te borran datos.

Desconectado jim_17

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
    • Blog personal
Re: Cuidados con memoria Flash
« Respuesta #2 en: 24 de Junio de 2013, 12:30:04 »
Hola,

Más o menos es como dice Merlinz, pero exactamente en vez de escribirse por sectores, es el borrado. Las memorias flash no permiten borrar 1 byte, por lo tanto tienes que borrar un sector que puede ser de 4k, 8k, 16k, dependiendo de tu memoria flash.

Un Saludo.
Share the world !

Blog's

http://www.area0x33.com

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: Cuidados con memoria Flash
« Respuesta #3 en: 24 de Junio de 2013, 13:22:44 »
he estado trabajando mucho con las memorias flash, pero me he encontrado con que aveces se me borra y no se por que, por eso quisiera saber en cuanto a programación que cuidado debemos tener al momento de escribir y leer de una memoria flash, para tratar de minimizar los problemas.


Antes de grabar, debes de borrar, pero debes de borrar una página completa, que en el caso de los PIC32 es de 4096 bytes, supongo que será de 2048 bytes para los pic de 16 bit y de 1024 (o menos) para los pic de 8 bit.

Si parte de lo que está almacenado en esa página, te vale, antes de borrarla tendrás que guardar su contenido, por ejemplo en un array, actualizar el array y volver a cargar la página completa. Si no lo haces así, perderás todo el contenido de la página. Si tratas de grabar, sin borrar previamente, los resultados pueden ser imprevisibles, yo hace tiempo cuando andaba desarrollando mi bootloader, antes de conocer la existencia de NVMem, intenté grabar directamente sin borrado previo, y me salieron cosas muy raras al hacer debug.




Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Cuidados con memoria Flash
« Respuesta #4 en: 24 de Junio de 2013, 13:55:18 »
Igual deberías ser más claro, a que tipo de memoria Flash te referís, NOR Flash, NAND Flash, etc ?

Saludos !

Desconectado IngRandall

  • PIC18
  • ****
  • Mensajes: 383
Re: Cuidados con memoria Flash
« Respuesta #5 en: 24 de Junio de 2013, 15:23:01 »
La memoria que utilizo esta en este link

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Cuidados con memoria Flash
« Respuesta #6 en: 24 de Junio de 2013, 15:47:36 »
Entonces es asi, debes borrar una pagina entera cada vez que quieras escribirla aunque sea 1byte, el procedimiento suele ser el siguiente:
-Lees la pagina completa y lo almacenas en la memoria ram
-Modificas el valor del byte que quieras en la RAM
-Borras la pagina
-Vuelcas la pagina completa de la RAM a la flash.

Suele ser un coñazo este tipo de memorias, me gusta mas las nvram o similares porque puedes escribir como quieras sin tener que "liarla" de tal forma.

Desconectado IngRandall

  • PIC18
  • ****
  • Mensajes: 383
Re: Cuidados con memoria Flash
« Respuesta #7 en: 24 de Junio de 2013, 15:53:07 »
Cuales son esas nvram, se borran si se les quita la alimentación, son mas caras???

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Cuidados con memoria Flash
« Respuesta #8 en: 24 de Junio de 2013, 16:08:19 »
Hola, en esa capacidad ( 8 MBits o 1 Mb x 8 ) no conozco, seguramente se referían a estas.

http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en531415

Pero llegan a 1MBits o 128 KBytes x 8

Saludos !

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Cuidados con memoria Flash
« Respuesta #9 en: 24 de Junio de 2013, 16:14:07 »
Entonces es asi, debes borrar una pagina entera cada vez que quieras escribirla aunque sea 1byte, el procedimiento suele ser el siguiente:
-Lees la pagina completa y lo almacenas en la memoria ram
-Modificas el valor del byte que quieras en la RAM
-Borras la pagina
-Vuelcas la pagina completa de la RAM a la flash.

Suele ser un coñazo este tipo de memorias, me gusta mas las nvram o similares porque puedes escribir como quieras sin tener que "liarla" de tal forma.

También podrias implementar un borrado inicial completo, de esta manera te aseguras que cada byte de la memoria esta complementamente borrado antes de escribir. Si la idea es escribir byte a byte a continuación no hay mayores problemas, el problema surge cuando se necesita "modificar" el valor de un dato previamente grabado en la memoria de forma aleatoria, hay se necesitan implementar tácticas como la que mencionaste.

Saludos !

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Cuidados con memoria Flash
« Respuesta #10 en: 24 de Junio de 2013, 19:38:13 »
Cuales son esas nvram, se borran si se les quita la alimentación, son mas caras???

Si, son mas caras pero mantienen la informacion aunque le quites alimentacion. La ventaja es que NO tiene limite de escrituras como las flash, son mas rapidas (no requiere esperar entre escritura/escritura de pagina). El unico inconveniente es ese, el precio, una de 4mbit puede costar en torno a 20$ aun asi las ventajas que tiene merece la pena de su precio.

Desconectado IngRandall

  • PIC18
  • ****
  • Mensajes: 383
Re: Cuidados con memoria Flash
« Respuesta #11 en: 25 de Junio de 2013, 09:34:42 »
Que referencia es es una de 8Mbit???

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Cuidados con memoria Flash
« Respuesta #12 en: 25 de Junio de 2013, 11:12:24 »
de 8mbit no he visto ninguna nvram con spi, por paralelo si hay muchas de mas capacidad, por spi la mas grande que he visto es de 4mbit
http://www.everspin.com/products.php?hjk=SERIAL&a1f3=0

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Cuidados con memoria Flash
« Respuesta #13 en: 25 de Junio de 2013, 11:51:27 »
Cuales son esas nvram, se borran si se les quita la alimentación, son mas caras???

Si, son mas caras pero mantienen la informacion aunque le quites alimentacion. La ventaja es que NO tiene limite de escrituras como las flash, son mas rapidas (no requiere esperar entre escritura/escritura de pagina). El unico inconveniente es ese, el precio, una de 4mbit puede costar en torno a 20$ aun asi las ventajas que tiene merece la pena de su precio.

Para aclarar un poco, tanto las eeprom, las NOR Flash, las NAND Flash, las MRAM, las PCM son todas NVRAM ( no volatile RAM ) es decir no pierden sus datos una vez quitada la alimentación. Las que vos te referís son MRAM ( Magnetic RAM ) y usan un principio magnetico para retener su valor. Aca explican un poco mejor

http://www.everspin.com/overview.php?

Cada una tiene su pro y sus contra ...

Saludos !

Desconectado jorgejg

  • PIC12
  • **
  • Mensajes: 96
Re: Cuidados con memoria Flash
« Respuesta #14 en: 27 de Junio de 2013, 00:56:49 »
Hola IngRandall:

Pensé que te referias a que los datos se te borraban sin haber enviado instrucción de escritura a la flash, justo tengo una de memoria similar de 16Mbit. Me ha pasado mucho con las eeproms de los pics que se me borran despues de algunos meses en algún momento dado, es probable que sea por un fallo del voltaje de fuente, por eso quiero intentar con una flash externa como la que tienes, pero ya me has asustado.

Saludos.