打印

nand flash 问题

[复制链接]
1592|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lg_army|  楼主 | 2007-10-23 21:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ADS编译环境C语言
nand flash 存储芯片的地址 如block,Column Address与Page Address
怎么理解啊  看了data sheet  还是不太明白?
比如block, 
是不是操作第一块,送入地址是0x0001;
操作第二块,送入地址是0x0002;
然后以此类推,
这样理解对不?
还有写入数据时, 怎么读出的都是0xFF   什么原因?
新手 迫切  期盼解答  

相关帖子

沙发
平常人| | 2007-10-23 22:48 | 只看该作者

NAND的地址是以页为单位(Page Address)

Column Address是页内地址。

写入数据后,读出的都是0xFF是因为你没有写对。

使用特权

评论回复
板凳
wishcom| | 2007-10-23 23:54 | 只看该作者

NAND的地址是以页为单位(Page Address)

NAND Flash由很多个Block组成,每个Block又由很多个Page组成,每个Page一般有512字节(最新产品有的一个Page是2048字节)。
NAND Flash擦除的最小单位是Block
NAND Flash写入的最小单位是Page

NAND Flash除了第一个Block之外,其他的Block都有可能是坏块,因此,需要有坏块处理机制。

如果LZ对硬盘有了解的话就会发现NAND Flash的组织其实和硬盘几乎一致。

 NAND Flash                 硬盘
--------------------------------------------
First Block -----------> 零磁道零扇区(0 sector)
Block       -----------> 簇(cluster)
Page        -----------> 扇区(sector)

一般NAND Flash都搭配了Nand Controllor来使用的。
如果需要完全的使用I/O来访问Nand,LZ可以参考以下其他人的代码,Nand的Driver几乎都是一样的。

使用特权

评论回复
地板
lg_army|  楼主 | 2007-10-24 08:52 | 只看该作者

有些不懂

谢谢楼上两位,我用的是海力士的芯片   网上的资料比较少

下面分别是擦除、写和读的函数
uint8 Flash_BlockErase(uint32 BlockAddr)
uint8  Flash_WriteByte(uint16 ColAddr,uint32 PageAddr,uint8 data) 
uint8 Flash_ReadByte(uint16 ColAddr,uint32 PageAddr)
里面的参数地址我该怎么写
哪位大哥提示一下?
我也觉得写数据的地方有问题,可能是时序的问题
感谢各位的帮忙  

使用特权

评论回复
5
平常人| | 2007-10-26 22:55 | 只看该作者

4楼的问题与海力士的芯片无关,你需要找这些函数的说明

谁发布的函数你就找谁。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

17

帖子

1

粉丝