片上系统设计思想与源代码分析
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.3 NandFlash器件的操作

K9F2G08U0M NandFlash的基本操作包括读、复制回读、读ID、复位、页写、缓存写、复制回写、块擦除、随机数据输入、随机数据输出、状态读。完成对NandFlash的基本控制包括读ID、页读、页写、状态读。

4.3.1 页读操作

NandFlash的页读操作时序如图4-4所示。每次读操作首先输入读取的起始地址,读取的第一个数为起始地址所对应的字节,然后地址自动加1,接下来可连续读取地址加1后的数据。这样的连续读取不能跨页,即列地址不能超过2048+63。列地址超过2048+63的区域为空白区域。

图4-4 NandFlash读操作

4.3.2 读ID操作

K9F2G08U0M读ID操作时序如图4-5所示,K9F2G08U0M所对应的ID为0xECDA8015。

图4-5 NandFlash读ID操作

4.3.3 页写操作

NandFlash的页写操作时序如图4-6所示。每次写操作首先输入写取的起始地址,之后的第一个数据为起始地址所对应的字节,然后地址自动加1,接下来的一个字节数据被写到起始地址加1所对应的空间中。这样的连续写操作不能跨页,即列地址不能超过2048+63。列地址超过2048+63的区域为空白区域。

图4-6 NandFlash写操作

NandFlash的页写操作并不总是成功的,因为可能被写入的页存储单元是坏的,因此,在写操作之后需要读取写操作的最终状态,若I/O[0]=0,则写操作成功,否则写操作失败,说明该页的存储单元已经被破坏,已经不能使用。

4.3.4 块擦除操作

块擦除操作时序如图4-7所示。块擦除操作每次擦除一个块,即64个页。在对一个页进行写操作之前,必须先将该页所对应的块擦除。

图4-7 NandFlash块擦除时序

一个块可能是坏块,块擦除不一定成功,因此,在块擦除结束后,必须读取操作状态。若I/O[0]=0,则写操作成功,否则写操作失败,说明该页的存储单元已经被破坏,已经不能使用。