有了前面的基础,擦除和烧写也是类似的。
下图是烧写的时序图。
- 发出0x80命令;
- 发出五个地址信号;
- 写入数据;
- 发出0x10命令;
- 等待烧写完成。
需要注意的是,nand一次只能烧写一页数据,超过一页数据时需要重新发送进行一次烧写过程,擦除则是一次一块。
下图是擦除的时序图。
- 发送0x60命令;
- 发送三个字节的页地址;
- 发送0xD0命令;
- 等待擦除完成。
另外,再说一下位反转现象出现的主要原因:
- 漂移效应(Drifting Effects):随着时间流逝,Nand Flash中cell的电压值变得和原来不一样了;
- 过渡编程效应,对某个页面的编程操作,即写操作,引起非相关的其他的页面某个位跳转;
- 读操作产生的错误,对某个页进行读操作,导致对应的某个位的数据发生了永久性变化,即Nand Flash上该位的值变了。