博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2.3NandFlash的操作
阅读量:5226 次
发布时间:2019-06-14

本文共 835 字,大约阅读时间需要 2 分钟。

2.3NandFlash的操作

1.NandFlash分类:

 

2.MLC和SLC对比:

 

 

 

 

3.信号引脚:

 

 

Nandflash的读:

页读:页地址

随机读:页地址+列地址

 

今天是要实现页读:需要页的地址。

我们来看芯片手册K9F2G08U0A.pdf:找到桉叶读的工作原理图:

寄存器NFCONT:

在这个寄存器里的【1】位:

 

上面就是选择操作nandflash的位:

 

  1. nandflash的statue寄存器:

    第四位:

    清除RB:第四位为1是,清除RB。

  2. 接下来是发送的操作:

    寄存器:

  3. 发送:

  4. NFDATA:

    主方法:

    Make:编译

     

    要实现nandflash进行读的功能,必须进行初始化:主要对一下两个寄存器进行初始化:

    我们主要是初始化这个寄存器的三个参数:TACLS,TWRPH0,TWRPH1。

    有下面的参数得上图参数:为了我们的nandflash能够工作,必须满足他的最小值。

    TACLS=0ns

    TWFPH0=12ns

    TWFPH1=5ns

     

     

    上面三个参数的取值运算:

    我们的nandflash使用的HCLK,频率是100MHz的。那么他每震动一次对应的时间是10ns(1/100MHz).

    上面有算TACLS>0ns

    TWFPH0>12ns

    TWFPH1>5ns的公式。

    要实现duration=HCLK*TACLS=10ns*TACLS>0,只需要取TACLS=1,即可。

    要实现duration=HCLK*(TWRPH0+1)=10ns*(TWRPH0+1)>12ns,只需要TWRPH0=2即可

    要实现duration=HCLK*(TWRPH1+1)=10ns*(TWRPH1+1)>5ns,只需要TWRPH1=1,即可。

    接下来是初始化我们的NFCONT,先disable,再enable使用。

    复位的操作:

    接下来就是来测试这些函数。

    解决隐患:

     

     

     

     

     

     

     

     

     

     

转载于:https://www.cnblogs.com/FORFISH/p/4204062.html

你可能感兴趣的文章
django的views里面的request对象详解大全
查看>>
oracle中anyData数据类型的使用实例
查看>>
C++对vector里面的元素排序及取任意重叠区间
查看>>
蓝桥杯题——包子凑数
查看>>
软件测试——性能测试总结
查看>>
sky1301测试总结 just before chip comes back
查看>>
12.4站立会议
查看>>
Sequelize为什么需要使用Migrations
查看>>
在Js中得到元素的子元素集合注意事项
查看>>
Spring MVC之DispatcherServlet初始化详解
查看>>
多线程篇-GCD-基本概念使用
查看>>
生成唯一的随机数
查看>>
尼玛某前辈把ant 工程 改成android studio工程然后上传了 对我来说 尼玛这玩意就和屎一样...
查看>>
SSM整合(精简版)
查看>>
各种xml文件约束,Eclipse用
查看>>
泰勒展开,傅里叶变换,拉普拉斯变换和Z变换的物理意义
查看>>
Java Concurrentmodificationexception异常原因和解决方法
查看>>
Python 面向对象(其四)
查看>>
客户端访问浏览器的流程
查看>>
Linux——ls
查看>>