新聞中心

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

        基于NIOS II 軟核的NAND FLASH的驅動方法

        作者: 時間:2018-08-29 來源:網絡 收藏

          1. 引言

        本文引用地址:http://www.104case.com/article/201808/391339.htm

           FLASH被廣泛應用于電子系統(tǒng)中作為數(shù)據(jù)存儲。在各種高端電子系統(tǒng)中現(xiàn)場可編程門陣列()已被廣泛應用。靈活的硬件邏輯能實現(xiàn)對 FLASH的讀寫操作。本文中闡述了一種基于 軟核的 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核設計。其基于 的AVALON總線。AVALON總線能兼容大部分存儲器接口,IP核將AVALON總線時序轉接至NAND FLASH,從而對NAND FLASH進行讀寫操作。

          IP邏輯主要有片選信號產生、ALE、CLE、RE、WE等控制信號的轉接。其中RE、WE信號可采用AVALON總線的RE、WE信號;CLE、ALE采用總線地址的低2位進行控制;片選數(shù)量較多可依據(jù)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系統(tǒng)軟核對外引出信號有EPCS、UART、NAND FLASH接口,在Quartus II建立原理圖塊進行編譯產生硬件信息。


          采用Nios II Software Build Tools for Eclipse 對QSYS進行軟件編程可實現(xiàn)對NAND FLASH的驅動。

          //NAND FLASH數(shù)據(jù)寄存器地址定義

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

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



        關鍵詞: NAND NIOS II FPGA

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 临邑县| 新巴尔虎右旗| 福鼎市| 皋兰县| 喀什市| 河曲县| 宁陵县| 田阳县| 清苑县| 原平市| 怀宁县| 镇平县| 武陟县| 将乐县| 洛宁县| 潢川县| 偃师市| 太仓市| 天镇县| 邢台市| 林周县| 桃园市| 曲松县| 泌阳县| 平顺县| 堆龙德庆县| 澄迈县| 瑞安市| 奈曼旗| 梅州市| 昌平区| 驻马店市| 彰武县| 洛宁县| 镇原县| 图们市| 古蔺县| 噶尔县| 丰宁| 吉木萨尔县| 石狮市|