Ahorro de memoria RAM al escribir en un tamaño de página de 2K Flash NAND

10

Estoy escribiendo un controlador para el Samsung K9WAG08U1D NAND flashchip. La especificación del chip de memoria menciona que tiene un tamaño de página de 2048 bytes (2kB). Estoy usando un TI MSP430F2619que tiene 4096 Bytes (4kB) de RAM. Esto significa que necesito asignar un búfer de memoria de 2k solo para escribir en flash. Mi aplicación es un convertidor de protocolo y, por lo tanto, requiere un búfer adicional para manejar la transmisión de aquí para allá. Sugiérame un mejor enfoque para reducir el requisito de RAM debido al tamaño de la página flash.

prasad
fuente

Respuestas:

7

No necesita llenar la página, registrarse de una vez.

Usted comienza a escribir una página (es decir, la operación "Programa de página") escribiendo el comando Entrada de datos en serie ( 0x80), la dirección de la columna y la dirección de la fila. Luego transfiere los datos al registro de la página (hasta 2112 bytes). Esta transferencia se puede dividir en trozos, con cualquier retraso entre trozos que necesite.

Cuando haya completado el registro de la página, comenzará la transferencia desde el registro de la página a la matriz con el comando Confirmar programa de página ( 0x10).

Patricio
fuente
tenga en cuenta que los flashes NAND generalmente están limitados a 4 escrituras parciales por página
1
@Jacen No me refiero a una escritura parcial por página. Esto se realiza mediante una secuencia separada de comando / dirección / datos / comando por parte. Me refiero a dividir la transferencia al registro de la página, que puede ser un "fragmento" por byte si es necesario.
Patrick
Básicamente, mi lógica de controlador actual estaba esperando que se llenara todo el búfer de 2K en la RAM y luego escribía en flash. Pero ahora también puedo tener un mínimo de 1 byte de RAM de búfer.
Oh sí, tienes razón Patrick, olvidé esta opción.