NAND FALSH的原理及使用介绍

|
本文论述了一种经过FPGA完成对欧比特公司的大容量NAND FLASH芯片VDNF2T16VP193EE4V25的操作办法。规划中选用ALTERA公司FPGA芯片,使用自建IP树立硬件渠道完成NAND FLASH的驱动。该规划也可移植到其他FPGA上,能够很好地使用在各嵌入式电子体系中。NAND FLASH被广泛使用于电子体系中作为数据存储。在各种高端电子体系中现场可编程门阵列(FPGA)已被广泛使用。FPGA灵敏的硬件逻辑能完成对NAND FLASH的读写操作。本文中论述了一种根据NIOS II 软核的NAND FLASH的驱动办法。

2. VDNF2T16VP193EE4V25简介

欧比特公司的VDNF2T16VP193EE4V25是一款容量为2Tb、位宽为16位的NAND FLASH,其内部由8片基片拓扑而成,其拓扑结构如下:

NAND FALSH的原理及使用介绍

图1 VD1D8G08VS66EE8T7B拓扑结构

其首要特性如下:

总容量2Tb;

位宽:16位;

SLC;

兼容ONFI2.2;

封装:PGA193;

电源:+3.3V(VCC)、+1.8V(VCCQ)。

3. VDNF2T16VP193EE4V25的操控器规划

大容量NAND FLASH操控器规划包含一个IP核规划。其根据NIOS II 的AVALON总线。AVALON总线能兼容大部分存储器接口,IP核将AVALON总线时序转接至NAND FLASH,从而对NAND FLASH进行读写操作。

IP逻辑首要有片选信号发生、ALE、CLE、RE、WE等操控信号的转接。其间RE、WE信号可选用AVALON总线的RE、WE信号;CLE、ALE选用总线地址的低2位进行操控;片选数量较多可根据AVALON总线的byteen信号进行译码发生。

NAND FALSH的原理及使用介绍

图2 操控器功用框图

//写信号

assign nand_wr_n = {avalon_wr_n,avalon_wr_n,avalon_wr_n,avalon_wr_n};

//读信号

assign nand_rd_n = {avalon_rd_n,avalon_rd_n,avalon_rd_n,avalon_rd_n};

//ALE信号,选用地址0

assign nand_ale = {avalon_add[0],avalon_add[0]};

//CLE信号,选用地址1

assign nand_cle = {avalon_add[1],avalon_add[1]};

//片选信号

assign nand_cs_n[0] = temcs[0]|avalon_byteen_n[0];

assign nand_cs_n[1] = temcs[0]|avalon_byteen_n[1];

IP核规划完成后选用QSYS进行硬件渠道树立,QSYS体系软核对外引出信号有EPCS、UART、NAND FLASH接口,在Quartus II树立原理图块进行编译发生硬件信息。

NAND FALSH的原理及使用介绍

选用Nios II Software Build Tools for Eclipse 对QSYS进行软件编程可完成对NAND FLASH的驱动。

//NAND FLASH数据寄存器地址界说

#define NandFlashDataReg0 (VDNF2T16_V1_0_BASE)

//NAND FLASH ALE寄存器地址界说

#define NandFlashAddReg0 (VDNF2T16_V1_0_BASE+4)

//NAND FLASH CLE寄存器地址界说

#define NandFlashCmdReg0 (VDNF2T16_V1_0_BASE+8)

以下为读取ID及坏块的信息:

******************************************************************

The cs=0 NAND_FLASH s ID is Right ,The ID is=0x2c881a7a9000

***********************************************************************

This cs=0 FLASH s Bank=0 have 5 BadBlocks:

The num=0 Bank LUN1 s num=90 is BadBlock.

The num=0 Bank LUN1 s num=91 is BadBlock.

The num=0 Bank LUN1 s num=1738 is BadBlock.

The num=0 Bank LUN2 s num=90 is BadBlock.

The num=0 Bank LUN2 s num=91 is BadBlock.

The Number of Bank s Valid Block is Right.

请尊重我们的辛苦付出,未经允许,请不要转载ca88亚洲城【官】_电子爱好者网的文章!
上一篇:一文读懂10/25/100G时钟规划的解决方案
下一篇:完成全密封、无外接接口的电子设备-电子发烧友网