zoukankan      html  css  js  c++  java
  • 2.3NandFlash的操作

    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使用。

      复位的操作:

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

      解决隐患:

  • 相关阅读:
    矩形法求积分sin cos exp
    约瑟夫环问题
    KMP算法详解
    找出float型数组的最大值和最小值,分别和第一个和最后一个元素互换
    二重指针应用
    C++学习笔记(一)
    Line学习笔记
    node2vec学习笔记
    deepwalk学习笔记
    如何保证消息不被重复消费?(如何保证消息消费时的幂等性)
  • 原文地址:https://www.cnblogs.com/FORFISH/p/4204062.html
Copyright © 2011-2022 走看看