19 votos

Memoria Flash: toda la página necesita ser borrado antes de escribir unos pocos bytes?

Una pregunta fácil, te esperamos!!! No estoy encontrando respuestas definitivas...

Estoy escribiendo los controladores para una SST25VF064C chip de memoria flash. Se comunica a través de SPI.

Como todos los de memoria flash (que yo sepa), necesita ser borrado (todos los bits = 1) antes de que pueda ser escrito (bit = 0). Para este chip, el área más pequeña que se puede borrar es de 4 kb.

Su memoria se divide en 256 bytes páginas. Con una instrucción, puedo escribir en cualquier lugar de uno de bytes 256 bytes en una página especificada. No tengo que iniciar en un límite de página: la primera ubicación a programar puede estar en cualquier lugar dentro de una página.

La regla general es asegurarse de que la página se borra antes de escribir en él. Pero, ¿puedo escribir en una previamente por escrito la página, si puedo evitar la ya escrita áreas? Por ejemplo, decir que me almacén de datos en bytes 0 y 127. Puedo escribir más tarde otra de 128 bytes en la misma página, si yo comienzo a byte 128?

16voto

GSerg Puntos 33571

Sí, después de borrar, puede utilizar cualquier número de operaciones de escritura de datos (cambio de bits de 1 a 0) antes de la siguiente operación de borrado.

Usted puede incluso reescribir una previamente por escrito ubicación, mientras que son sólo de compensación de más bits. Esto puede ser útil para mantener las cosas como mapas de bits de asignación.

1voto

Martin R-L Puntos 2300

Es muy probable que el software de programación que usted está usando ya está escribiendo el "necesario" de 256 bytes. "Aparece" como su te da la capacidad de escribir de uno a 256 bytes, pero sospecho que lo que está haciendo es O-ing el byte(s) que se desea con una "máscara" de 256 "FF". Si esto es correcto, entonces usted puede de forma segura "" escribir cualquier byte de una vez, sin tener que borrar todo el 4K bytes. Si la suma de comprobación se escribe fuera de su control, entonces lo más probable es que una suma de comprobación no válida será creado cuando escribir un byte en un escrito anteriormente segmento. Las implicaciones de esto, es el chip dependiente.

Si su software de programación, no hacer la "O-ing," usted puede hacerlo usted mismo. Claro una de 256 bytes del segmento, escribe el byte(s) en la posición correcta(s), O con una de 256 byte de la máscara de FFs, y escribir el segmento a la página deseada.

Si el método funciona con cualquier chip en particular, puede ser fácilmente determinado por usted. Escribir a los primeros 128 bytes, escribir a la segunda de 128 bytes, compruebe que los primeros 128 bytes NO son "en mal estado"!

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X