关于Nand Flash行地址和列地址的计算

Nand Flash行地址和列地址的计算

不说废话,直接上图。
这里写图片描述
从图中可以看出Nand Flash有2048Blocks,每个Block有64页,每一页含有2K的用户可以使用的数据和64B的OOB。对于用户来说这64B的数据时不用操作的,读写的时候也会忽略这部分。也就是说用户在读这一页数据的时候只会发出11位地址,不会发出12位地址(12位地址包含了读写OOB)。
举一个例子:
加入user想读0x60000地址处的数据,那么:

column_address = 0x60000 % 2048
row_address = 0x60000 / 2048;

由于地址和数据都是通过8位引脚发送的,所以:
第一个周期发送的地址是: 0x60000 & 0xff 或column_address & 0xff;
第二个周期发送的地址为:(0x60000 >> 8) & 0x07或(column_address >> 8) & 0x07;
第三个周期发送的地址为:(0x60000 >> 11) & 0xff,这里是右移11位,不是12位,或row_address & 0xff;
第四个周期发送的地址为:(0x60000 >> 19) & 0xff,或(row_address >> 8) & 0xff;
最后一个周期发送的地址为:(0x60000 >> 27) & 0x01,或(row_address >> 16) & 0x01。

注意:个人觉得关于地址的计算,应该用户要读取数据地址的从出发点考虑,用户读数据时是不关心OOB的,只关心正常读取的数据。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值