<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于NIOS II 軟核的NAND FLASH的驅動(dòng)方法

基于NIOS II 軟核的NAND FLASH的驅動(dòng)方法

作者: 時(shí)間:2018-08-29 來(lái)源:網(wǎng)絡(luò ) 收藏

  1. 引言

本文引用地址:http://dyxdggzs.com/article/201808/391339.htm

   FLASH被廣泛應用于電子系統中作為數據存儲。在各種高端電子系統中現場(chǎng)可編程門(mén)陣列()已被廣泛應用。靈活的硬件邏輯能實(shí)現對 FLASH的讀寫(xiě)操作。本文中闡述了一種基于 軟核的 FLASH的驅動(dòng)方法。

  2. VDNF2T16VP193EE4V25簡(jiǎn)介

  歐比特公司的VDNF2T16VP193EE4V25是一款容量為2Tb、位寬為16位的NAND FLASH,其內部由8片基片拓撲而成,其拓撲結構如下:


  其主要特性如下:

  ? 總容量2Tb;

  ? 位寬:16位;

  ? SLC;

  ? 兼容ONFI2.2;

  ? 封裝:PGA193;

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

  3. VDNF2T16VP193EE4V25的控制器設計

  大容量NAND FLASH控制器設計包括一個(gè)IP核設計。其基于 的AVALON總線(xiàn)。AVALON總線(xiàn)能兼容大部分存儲器接口,IP核將AVALON總線(xiàn)時(shí)序轉接至NAND FLASH,從而對NAND FLASH進(jìn)行讀寫(xiě)操作。

  IP邏輯主要有片選信號產(chǎn)生、ALE、CLE、RE、WE等控制信號的轉接。其中RE、WE信號可采用AVALON總線(xiàn)的RE、WE信號;CLE、ALE采用總線(xiàn)地址的低2位進(jìn)行控制;片選數量較多可依據AVALON總線(xiàn)的byteen信號進(jìn)行譯碼產(chǎn)生。


  圖2 控制器功能框圖

  //寫(xiě)信號

  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進(jìn)行硬件平臺搭建,QSYS系統軟核對外引出信號有EPCS、UART、NAND FLASH接口,在Quartus II建立原理圖塊進(jìn)行編譯產(chǎn)生硬件信息。


  采用Nios II Software Build Tools for Eclipse 對QSYS進(jìn)行軟件編程可實(shí)現對NAND FLASH的驅動(dòng)。

  //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. 結論

  本文闡述了一種通過(guò)實(shí)現對歐比特公司的大容量NAND FLASH芯片VDNF2T16VP193EE4V25的操作方法。設計中采用ALTERA公司FPGA芯片,利用自建IP搭建硬件平臺實(shí)現NAND FLASH的驅動(dòng)。該設計也可移植到其他FPGA上,可以很好地應用在各嵌入式電子系統中。



關(guān)鍵詞: NAND NIOS II FPGA

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>