NAND Flash驱动程序设计

一 NAND Flash概括

NAND Flash充当硬盘的角色,NAND Flash主要分为以下两类,
SLC(single level cell):单层式存储
MLC(multi level cell):多层式存储
MLC对比SLC
SLC访问速度一般比MLC快三倍以上 SLC可以进行十万次的擦写,MLC可以进行一万次,MLC功耗比SLC高15%左右
访问方式内存采用的是统一编址,NAND Flash采用的是独立编址,第一传地址给CPU控制器,第二传命令给控制器,第三传数据给控制器

二 NAND Flash驱动设计_读

根据NAND Flash的芯片手册,可以看出页读中I/Ox的编码步骤
这里写图片描述
首先发送命令00h,然后发送地址,发送地址先发送列地址,后发送行地址。其次发送命令0x30,等待RnB信号,最后读取数据。除此之外,还需要加入一些通用步骤,选中NAND Flash芯片,清除RnB信号,在最后需要取消选中NAND Flash芯片。所以基本步骤是
1 选中芯片
2 清除RnB
3 发出命令
4 发出列地址
5 发出行地址
6 发出命令
7 等待RnB信号
8 读数据
9 取消片选
这里写图片描述

如何选中NAND Flash芯片

这里写图片描述
这里写图片描述
选中NAND Flash芯片,就是往NFCONT这个寄存器中第一位写入0。

void select_ship(void)
{
    NFCONT &= ~(1<<1); 
}

如何发送命令

NFCMMD(八位)寄存器就是存放发送给NAND Flash的命令的,命令本身传进来后送到NFCMMD寄存器中。

void nand_cmd(unsigned char cmd)
{
    NFCMMD = cmd;   
}

如何发送地址

NFADDR(八位)往这个寄存器中写入地址,按页读没有偏移,所以列地址为0,有两个列地址都为0。有三个行地址。由READ OPERATION时序图中看出有两个列地址和三个行地址。


                
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值