Nandflash的寄存器设置

  NFCONF 

配置寄存器主要是设置命令的锁存周期,根据下面2440的nand的时序,当WE在使能之前,CLE要先使能,等CLE稳定之后WE才能使能,然后等待一段时间才去拉低CLE .这里就有两个稳定的时间,分别是WE命令使能之前与之后,也就是建立时间与保持时间,就跟他们时间名的后缀一样,S->ser, H->hold

至于TACLS等的时间周期大小可以参照K9F2G08U0C(NAND FLASH).pdf芯片手册中时序

对比上面两个图我们可以得出结论

1.从CLE拉高到WE使能的这段时间,意思就是说CLE要使能一段时间,稳定后在WE使能

“TACLS”= tCLS - Twp

2.WE写周期时间:

“TWRPH0” = twp

3.CLE保持时间(WE无效后, CLE需要保持一段时间,使其能好好的锁存,即延长硬件的锁存动作(就是存储一段时间),如果WE上升沿后马上拉高CLE(锁存使能无效), 很可能数据就不能及时存入nandflash,造成存储丢失, 我们还可以看到命令在I/O总线上也要随着CLE停留而停留一段时间(tDH)

“TWRPH1” = tCLH

找到关系后, 通过nandflash数据手册可以找到这些时间的最小定义(即完成动作的最小时间,比如 tCLS的最小时间)

根据之前的计算,我们要满足TACLS >= 0ns,TWRPHO >= 12ns,TWROH1 >= 5ns,根据寄存器的配置信息,HCLK = 100M = 10ns,  TACLS -> Duration = HCLK × TACLS,   TWRPH0 -> Duration = HCLK × ( TWRPH0 + 1 ),  TWRPH1->Duration = HCLK × (  TWRPH1 + 1 ),    所以三个配置参数为 0,1,0 就能够满足

配置寄存器最终取值:TACLS=0,TWRPH0=1,TWRPH1 = 0

NFCONT

InitECC [4] :  初始化ECC检验

Reg_nCE [1]:用来控制片选 (一般在读写一次的周期,都要进行片选信号的选定,取消选定的操作,目的是为了省电),初始化默认关闭,读取的                               时候开启

MODE [0]: 用来控制flash是否能工作

控制寄存器默认取值:MODE=1,Reg_nCE=1,InitECC=1

NFCMMD

当要发送读取或者写命令时,直接往NFCMMD寄存器低八位(单字节)里写入命令值,其他位保留

    NFADDR

跟NFCMMD寄存器一样,往低八位写入地址值就可以了

NFDATA

NFDATA字节的存储方式主要参考下表,以大端模式来讲解, 当传送一个字时,这时候存4个字节的数据,    0x12345678(大端, 内存低字节存高位) ,2440的nandflash是8位的, 所以先发送

0x78(1st  [31:24]) –> 0x56(2nd  [23:16])  –>  0x34(3nd  [15:8])  –>   0x12(4th  [7:0])。

NFCON

RnB [0] : 读取该位,判断nandflash判断是否处于空闲状态

上面就是所有的寄存器的设置, 当读取nandflash的页数据时,要参照nandflash的读顺序,下面就是读页的流程: 发送读命令00后,连续发5个地址,再发读命令30,然后判断是否空闲,最后读取数据

Nandflash的寄存器配置相关推荐

  1. 【驱动】GPIO寄存器配置总结

    #[驱动]GPIO寄存器配置总结 0.设置复用功能为GPIO 1.设置引脚特性,与硬件匹配 2.配置寄存器举例 字段解释: 2.0.SRE 数据位:0 SRE(Slew Rate Field):转换速 ...

  2. ov7725摄像头调试经验-寄存器配置

    之前调过一款摄像头,是MT9V034, 最近在调的是OV7725摄像头,感觉OV7725摄像头比MT9V034要难,特别是寄存器配置,要想玩转一款摄像头,必须要熟悉它的寄存器配置,而且要亲自去调试,然 ...

  3. 【蓝桥杯单片机】【51拓展】PCA寄存器配置实现硬件输出PWM

    目录 定时器配置及PCA相关寄存器配置源代码: 代码解析: 效果图: STC15F2K60S2(IAP15也可以)中PWM产生的原理图(PWM产生功能是集成在PCA功能模块中的):  产生PWM是使用 ...

  4. IT66021FN 寄存器配置

                                                                                    IT66021FN 寄存器配置 HDMI ...

  5. 【i.MX6ULL】驱动开发3——GPIO寄存器配置原理

    前面的两篇Linux驱动文章,介绍了字符设备驱动的两种新旧开发方式,并使用一个虚拟的字符驱动来学习字符设备的开发的流程. 本篇起,就要来操作Linux开发板的硬件,首先当然是通过经典的点亮LED灯程序 ...

  6. SCCB协议介绍与应用和OV7670摄像头的寄存器配置

    SCCB协议简介: 以OV7670的配置传输为例 OV770中,8'h42是写操作ID,8'h43是读地址 从数据传输时序可以看出,其传输的顺序是: 开始位,数据[7:0] ,X位,其中X位为任意,手 ...

  7. STM32寄存器配置USART1串口及USART->BRR值的计算

    STM32寄存器配置串口USART1及USART->BRR值的计算 main.c #include "stm32f10x.h" // Device header #inclu ...

  8. STM32 PWM控制电机寄存器配置

    脉冲宽度调制PWM,实现对电机速度的控制. 1.PWM输出原理 假定定时器工作在向上计数 PWM模式,CNT为当前计数值,CCRx为捕获/比较寄存器CCRx的值(预装载值).当 CNT<CCRx ...

  9. OV7725寄存器配置

    OV7725寄存器配置(为了替换NT99141研究了很长一段时间) 部分参考链接: OV7725 电器特性和时序图:https://www.cnblogs.com/raymon-tec/p/50870 ...

最新文章

  1. 学完了python能做什么-学完Python能做什么
  2. 1.1 开始起步,配置ruby on rails运行环境
  3. 阻塞队列的应用 || 多线程的条件判断 一定要用while,而不要用 if
  4. wsl遇到问题The repository ‘http://ppa.launchpad.net/ubuntu-desktop/ubuntu-make/ubuntu focal Release‘解决方法
  5. (J2EE学习笔记)解决Hibernate删除异常:deleted object would be re-saved by cascade
  6. 任意阶幻方(魔方矩阵)C语言实现
  7. 拼图登陆拼图二维码验证_如何使用拼图快速轻松地构建静态网站
  8. django 1.8 官方文档翻译: 2-3-1 模型实例参考
  9. apiCloud实现加载更多效果,基本完美~
  10. 社团报名系统php,php85高校学生社团管理系统
  11. 极客大学架构师训练营、区块链、数字货币、以太坊、Libra、联盟链 第28课 听课总结
  12. 用于高性能分组处理的电力线滤波
  13. OBIEE,OAS,OAC三者之间的区别
  14. Windows计算机操作系统基础知识点总结
  15. 灰度直方图与特征直方图的使用方法
  16. 怎么开启微信蓝牙服务器,微信加群,电脑蓝牙怎么打开,教你一个最简单的方法...
  17. 台式计算机戴尔3020,戴尔 Dell OptiPlex 3020M 台式机整机 评测
  18. 广陵郡(堂)追宗溯祖与世系排行
  19. Android Binder(也许是最容易理解的)
  20. 【区块链技术与应用】(二)

热门文章

  1. 如何通过科学跑步瘦成筷子腿?
  2. vue数组去重,数组对象去重
  3. Java值传递问题分析解决
  4. BNF范式(巴科斯范式)
  5. SQLite3数据库的快速入门菜鸟教程
  6. python-docx生成目录方法探索及汇总整理
  7. 形参和实参,传值和传址
  8. 学信网查不到学位信息?学位绑定的流程详解
  9. android 联系人 字母索引,Android ListView字母索引(仿微信通訊錄列表)
  10. 【大数据发展八大趋势】