puedo escribir en una página escrita anteriormente, si evito
áreas ya escritas?
Si entiendo p. 16 de la hoja de datos correctamente, está diciendo: con este chip en particular, no debe escribir en una página escrita previamente, incluso si evita las áreas ya escritas.
detalles
La SST25VF064C hoja de datos del chip de memoria flash en la p. 16 dice "Los programas de instrucción de la página hasta 256 bytes de datos en la memoria. La página seleccionada
la dirección debe estar en el estado borrado (FFH) antes de iniciar la operación del Programa de Página ".
Supongo que, por lo tanto, "toda la página seleccionada debe estar en el estado borrado (cada byte en la página FFh) antes de iniciar una operación de programa de página". ¿Ha publicado SST o Microchip alguna documentación que aclare esta frase tan ambigua?
En mi experiencia, el fabricante de todos los chips flash MLC y algunos chips flash SLC más nuevos exigen que una vez que se haya escrito una página, la página debe debe borrarse antes de escribir nuevamente esa página, incluso si solo quieres cambiar de 1 bit a 0 bit.
(Esto se denomina "regla de una sola escritura" en el artículo de YAFFS .)
En mi experiencia, todos los chips flash más antiguos le permiten cambiar de 1 bit a 0 bit sin un ciclo de borrado, incluso si ese bit está en una página o incluso un byte que ya tenía otros bits programados a cero - Se puede programar una página de flash varias veces entre borrados.
(Esto se denomina "escritura múltiple" en el artículo de YAFFS).
La hoja de datos del fabricante es una promesa condicional que el fabricante le hace a usted. Mientras siga todas las recomendaciones de la hoja de datos, el fabricante promete que el chip funcionará según lo especificado.
Sospecho que si programa una página escrita previamente, evitando las áreas ya escritas, existe una buena posibilidad de que una lectura inmediata pueda proporcionar los datos que espera: los bytes recién escritos son los valores que acaba de escribir, y los otros bytes probablemente no han cambiado.
Sin embargo, como esto no sigue las recomendaciones de la hoja de datos, ya no puede confiar en todas las promesas de la hoja de datos. Escucho rumores de que tal actividad no autorizada causa que el tiempo de retención de datos y la resistencia sufran,
debido a la perturbación del programa, la sobre programación, la captura de carga, efectos similares a martillo de fila DRAM , etc.
"El esquema de uso de la memoria influye en la tasa de error de bits. Programación de páginas parciales, programación de páginas no secuenciales dentro del bloque, lectura excesiva por bloque sin borrado, así como número de operaciones de lectura no iguales dentro de un solo número de aumento de bloque de los errores de lectura molestar ".
- Michal Jedrak.
"Memoria flash NAND en sistemas integrados".
"La perturbación del programa se produce cuando un bit se programa involuntariamente de un" 1 "a un" 0 "durante un
evento de programación de páginas. Este error de bit puede ocurrir en la página que se está programando o en
Otra página en el bloque. Las condiciones de tensión de polarización en el bloque durante la programación de la página pueden
causar una pequeña cantidad de corriente para hacer un túnel hacia las celdas de memoria cercanas. Página parcial repetida
Los intentos de programación seguirán agravando esta condición ".
- Douglas Sheldon y Michael Freie.
" Perturbar pruebas en memorias flash ".
pag. 8, 9.
"La perturbación del programa ocurre cuando un bit se programa involuntariamente (1 a 0) durante una operación de programación. ... Esta condición empeora con la programación aleatoria en el bloque y aplicando múltiples escrituras parciales a las páginas."
"Mitigación de fallos repentinos de NAND de Yaffs"