完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
NAND FLASH被广泛应用于电子系统中作为数据存储。在各种高端电子系统中现场可编程门阵列(FPGA)已被广泛应用。FPGA灵活的硬件逻辑能实现对NAND FLASH的读写操作。本文中阐述了一种基于NIOS II 软核的NAND FLASH的驱动方法。
2. VDNF2T16VP193EE4V25简介 欧比特公司的VDNF2T16VP193EE4V25是一款容量为2Tb、位宽为16位的NAND FLASH,其内部由8片基片拓扑而成,其拓扑结构如下: 图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信号进行译码产生。 图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上,可以很好地应用在各嵌入式电子系统中。 |
|
|
|
只有小组成员才能发言,加入小组>>
695 浏览 0 评论
1106 浏览 1 评论
2473 浏览 5 评论
2808 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2646 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
655浏览 9评论
651浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
783浏览 6评论
630浏览 5评论
670浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 23:28 , Processed in 1.572826 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号