nand flash 问题

[复制链接]
2515|4
 楼主| lg_army 发表于 2007-10-23 21:48 | 显示全部楼层 |阅读模式
ADS编译环境C语言<br />nand&nbsp;flash&nbsp;存储芯片的地址&nbsp;如block,Column&nbsp;Address与Page&nbsp;Address<br />怎么理解啊&nbsp;&nbsp;看了data&nbsp;sheet&nbsp;&nbsp;还是不太明白?<br />比如block,&nbsp;<br />是不是操作第一块,送入地址是0x0001;<br />操作第二块,送入地址是0x0002;<br />然后以此类推,<br />这样理解对不?<br />还有写入数据时,&nbsp;怎么读出的都是0xFF&nbsp;&nbsp;&nbsp;什么原因?<br />新手&nbsp;迫切&nbsp;&nbsp;期盼解答&nbsp;&nbsp;
平常人 发表于 2007-10-23 22:48 | 显示全部楼层

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

Column&nbsp;Address是页内地址。<br /><br />写入数据后,读出的都是0xFF是因为你没有写对。
wishcom 发表于 2007-10-23 23:54 | 显示全部楼层

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

NAND&nbsp;Flash由很多个Block组成,每个Block又由很多个Page组成,每个Page一般有512字节(最新产品有的一个Page是2048字节)。<br />NAND&nbsp;Flash擦除的最小单位是Block<br />NAND&nbsp;Flash写入的最小单位是Page<br /><br />NAND&nbsp;Flash除了第一个Block之外,其他的Block都有可能是坏块,因此,需要有坏块处理机制。<br /><br />如果LZ对硬盘有了解的话就会发现NAND&nbsp;Flash的组织其实和硬盘几乎一致。<br /><br />&nbsp;NAND&nbsp;Flash&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;硬盘<br />--------------------------------------------<br />First&nbsp;Block&nbsp;-----------&gt&nbsp;零磁道零扇区(0&nbsp;sector)<br />Block&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-----------&gt&nbsp;簇(cluster)<br />Page&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-----------&gt&nbsp;扇区(sector)<br /><br />一般NAND&nbsp;Flash都搭配了Nand&nbsp;Controllor来使用的。<br />如果需要完全的使用I/O来访问Nand,LZ可以参考以下其他人的代码,Nand的Driver几乎都是一样的。
 楼主| lg_army 发表于 2007-10-24 08:52 | 显示全部楼层

有些不懂

谢谢楼上两位,我用的是海力士的芯片&nbsp;&nbsp;&nbsp;网上的资料比较少<br /><br />下面分别是擦除、写和读的函数<br />uint8&nbsp;Flash_BlockErase(uint32&nbsp;BlockAddr)<br />uint8&nbsp;&nbsp;Flash_WriteByte(uint16&nbsp;ColAddr,uint32&nbsp;PageAddr,uint8&nbsp;data)&nbsp;<br />uint8&nbsp;Flash_ReadByte(uint16&nbsp;ColAddr,uint32&nbsp;PageAddr)<br />里面的参数地址我该怎么写<br />哪位大哥提示一下?<br />我也觉得写数据的地方有问题,可能是时序的问题<br />感谢各位的帮忙&nbsp;&nbsp;
平常人 发表于 2007-10-26 22:55 | 显示全部楼层

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

谁发布的函数你就找谁。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

17

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部