Configuración memoria NAND

From Qi-Hardware
(Redirected from Talk:NAND)
Jump to: navigation, search

NAND Flash


La memoria NAND flash puede ser conectada al static memory bank4~band1, el ancho de datos de este tipo de bancos se puede configurar en 8, 16 o 32 bits, la memoria NAND utilizada maneja datos a 16 y 32 bits por lo que este bloque soporta las dos.

Es importante la implementación de hardware ECC debido a que las memorias NAND requieren corrección de datos y existe la posibilidad de que queden bloques marcados como erróneos o inservibles.

La memoria NAND utilizada es MLC (multi-level cell) lo que quiere decir que es capaz de almacenar más de un bit de información.


REGISTROS MAS IMPORTANTES EN LA MEMORIA NAND FLASH


A continuación se muestran los registros más importantes y uno descripción general de ellos. Cada registro consta de 32 bits en los cuales se almacenan instrucciones e información.


Registros Nand.png


NAND flash Control/Status Register (NFCSR)

Este registro configura la memoria NAND, se inicializa con algún reset en ‘0’ Los bits más importantes son los bits del 0 al 7 ya que con estos se describe si se va a utilizar o no un static bank del chip o si este está siendo utilizado por la NAND.


NAND Flash ECC control register (NFECCR)

Se utiliza para realizar control sobre los cálculos del ECC.


NAND Flash ECC data register (NFECC)

En este registro se almacenan los resultados del cálculo de ECC.


NAND Flash parity register (NFPARn, n=0,1,2)

Contiene la codificación y decodificación de los datos de paridad durante la corrección RS.


NAND Flash Interrupt Status Register (NFINTS)

En este registro se tiene la bandera de interrupción y el contador de errores de la corrección RS.


NAND Flash Interrupt Enable Register (NFINTE)

Usado para activar o desactivar la NAND flash interrupt durante la corrección RS.


NAND Flash Error Report Register (NFERRn, n=0,1,2,3)

Contiene el índice y el valor de error para cada símbolo de error después de decodificación RS.


La descripción completa de estos registros se encuentra en el Datasheet del jz4725 en el cual se encuentran descritos todos los bits de cada registro y su función ya que algunos registros dependen de bits de otros registros.


Arranque de la memoria NAND flash.

La configuración básica de arranque de la memoria NAND flash se encuentra en Configuraciones de arranque.


Secuencia de programación de la memoria NAND flash

En la siguiente figura se muestra la secuencia utilizada para programar la NAND flash.


Secuenciadef.png


La NAND es muy importante ya que a través de ella se puede arrancar el sistema, esto se encuentra controlado por el boot_sel[1:0] que para los casos 10 y 11 se inicia con la NAND; para el primer caso se arranca de la memoria NAND con una tamaño de pagina de 512 y en el segundo caso con un tamaño de pagina de 2048, después de activar el tamaño de pagina a utilizar se lee el primer byte de la memoria. La definición del primer byte de la memoria NAND indica el ancho del bus de datos, esto es si es de 8 o 16 bits de ancho y el cycle page de 2 o 3.

A continuación se muestra como se conecta la memoria NAND con ancho de 8 bits al static bank 2 y la asignación de pines de la NAND en el bank.


ConexionNand.png


La secuencia de arranque del sistema a partir de la NAND se describe en el siguiente diagrama.


ArranquedesdeNAND.png


La SRAM va desde la dirección 0x80000000 hasta la 0x80004000, como se ve en el diagrama cuando se realiza el ECC a la NAND y esta funciona correctamente se arranca desde la segunda posición de la SRAM (0x80000004).

Algunos ejemplos de funciones básicas como READ PAGE y BLOCK ERASE se encuentran en el siguiente link NAND.



Referencias

[1] Manual de usuario ftp://ftp.ingenic.cn/2soc/Jz4725_ds.pdf

[2] Memorias flash http://en.wikipedia.org/wiki/Flash_memory

[3] ECC Wikipedia http://en.wikipedia.org/wiki/Error_correcting_code ECC

[4] MLC http://en.wikipedia.org/wiki/Multi-level_cell MLC



LINKS relacionados:


NAND


Memorias flash

Personal tools
Namespaces
Variants
Actions
Navigation
interactive
Toolbox
Print/export