网站首页
IC库存
IC展台
电子资讯
技术资料
PDF文档
我的博客
IC72论坛
ic72 logo
资料首页最新产品 技术参数 电路图 设计应用 解决方案 代理商查询 IC替换 IC厂商 电子辞典
关键字: 技术文章 PDF资料 IC价格 电路图 代理商查询 IC替换 IC厂商 电子辞典

基于NIOS II 软核的NAND FLASH的驱动方法

  NAND FLASH被广泛应用于电子系统中作为数据存储。在各种高端电子系统中现场可编程门阵列(FPGA)已被广泛应用。FPGA灵活的硬件逻辑能实现对NAND FLASH的读写操作。本文中阐述了一种基于NIOS II 软核的NAND FLASH的驱动方法。

  2. VDNF2T16VP193EE4V25简介

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


  其主要特性如下:

  ? 总容量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信号进行译码产生。


  图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建立原理图块进行编译产生硬件信息。


  采用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.

  ……

  4. 结论

  本文阐述了一种通过FPGA实现对欧比特公司的大容量NAND FLASH芯片VDNF2T16VP193EE4V25的操作方法。设计中采用ALTERA公司FPGA芯片,利用自建IP搭建硬件平台实现NAND FLASH的驱动。该设计也可移植到其他FPGA上,可以很好地应用在各嵌入式电子系统中。

热门搜索:SUPER6OMNI B TLP808 SBB2808-1 PS2408RA 2986122 2320319 8300SB2-LF RBC62-1U 02T0500JF 2920078 TLP404 2320089 PS-415-HG-OEM LC2400 PS361220 2839240 2838322 LC1800 BT-M515RD TLP604TEL LED24-C4 PDUMH15 DRV8313PWPR 2838733 2920120
COPYRIGHT:(1998-2010) IC72 达普IC芯片交易网
客户服务:service@IC72.com 库存上载:IC72@IC72.com
(北京)联系方式: 在线QQ咨询:点击这里给我发消息 联系电话:010-82614113 传真:010-82614123
京ICP备06008810号-21 京公网安备 11010802032910 号 企业资质