Nandflash的寄存器配置
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的寄存器配置相关推荐
- 【驱动】GPIO寄存器配置总结
#[驱动]GPIO寄存器配置总结 0.设置复用功能为GPIO 1.设置引脚特性,与硬件匹配 2.配置寄存器举例 字段解释: 2.0.SRE 数据位:0 SRE(Slew Rate Field):转换速 ...
- ov7725摄像头调试经验-寄存器配置
之前调过一款摄像头,是MT9V034, 最近在调的是OV7725摄像头,感觉OV7725摄像头比MT9V034要难,特别是寄存器配置,要想玩转一款摄像头,必须要熟悉它的寄存器配置,而且要亲自去调试,然 ...
- 【蓝桥杯单片机】【51拓展】PCA寄存器配置实现硬件输出PWM
目录 定时器配置及PCA相关寄存器配置源代码: 代码解析: 效果图: STC15F2K60S2(IAP15也可以)中PWM产生的原理图(PWM产生功能是集成在PCA功能模块中的): 产生PWM是使用 ...
- IT66021FN 寄存器配置
IT66021FN 寄存器配置 HDMI ...
- 【i.MX6ULL】驱动开发3——GPIO寄存器配置原理
前面的两篇Linux驱动文章,介绍了字符设备驱动的两种新旧开发方式,并使用一个虚拟的字符驱动来学习字符设备的开发的流程. 本篇起,就要来操作Linux开发板的硬件,首先当然是通过经典的点亮LED灯程序 ...
- SCCB协议介绍与应用和OV7670摄像头的寄存器配置
SCCB协议简介: 以OV7670的配置传输为例 OV770中,8'h42是写操作ID,8'h43是读地址 从数据传输时序可以看出,其传输的顺序是: 开始位,数据[7:0] ,X位,其中X位为任意,手 ...
- STM32寄存器配置USART1串口及USART->BRR值的计算
STM32寄存器配置串口USART1及USART->BRR值的计算 main.c #include "stm32f10x.h" // Device header #inclu ...
- STM32 PWM控制电机寄存器配置
脉冲宽度调制PWM,实现对电机速度的控制. 1.PWM输出原理 假定定时器工作在向上计数 PWM模式,CNT为当前计数值,CCRx为捕获/比较寄存器CCRx的值(预装载值).当 CNT<CCRx ...
- OV7725寄存器配置
OV7725寄存器配置(为了替换NT99141研究了很长一段时间) 部分参考链接: OV7725 电器特性和时序图:https://www.cnblogs.com/raymon-tec/p/50870 ...
最新文章
- 学完了python能做什么-学完Python能做什么
- 1.1 开始起步,配置ruby on rails运行环境
- 阻塞队列的应用 || 多线程的条件判断 一定要用while,而不要用 if
- wsl遇到问题The repository ‘http://ppa.launchpad.net/ubuntu-desktop/ubuntu-make/ubuntu focal Release‘解决方法
- (J2EE学习笔记)解决Hibernate删除异常:deleted object would be re-saved by cascade
- 任意阶幻方(魔方矩阵)C语言实现
- 拼图登陆拼图二维码验证_如何使用拼图快速轻松地构建静态网站
- django 1.8 官方文档翻译: 2-3-1 模型实例参考
- apiCloud实现加载更多效果,基本完美~
- 社团报名系统php,php85高校学生社团管理系统
- 极客大学架构师训练营、区块链、数字货币、以太坊、Libra、联盟链 第28课 听课总结
- 用于高性能分组处理的电力线滤波
- OBIEE,OAS,OAC三者之间的区别
- Windows计算机操作系统基础知识点总结
- 灰度直方图与特征直方图的使用方法
- 怎么开启微信蓝牙服务器,微信加群,电脑蓝牙怎么打开,教你一个最简单的方法...
- 台式计算机戴尔3020,戴尔 Dell OptiPlex 3020M 台式机整机 评测
- 广陵郡(堂)追宗溯祖与世系排行
- Android Binder(也许是最容易理解的)
- 【区块链技术与应用】(二)