请问evm5517_v1\tests\nandflash这个例程中
擦除操作
// Start erase operation
NANDFLASH_CLE = CMD_ERASE;
NANDFLASH_ALE = (blocknum & 0x0003) << 6;
NANDFLASH_ALE = (blocknum & 0x03fc) >> 2;
NANDFLASH_ALE = (blocknum & 0x0c00) >> 10;
NANDFLASH_CLE = CMD_ERASE_CONFIRM;
中ALE为什么这么算,跟nand芯片的参数怎么结合对应起来?
feng wu2:
还有我如果用CS4,当执行完NANDFLASH_CLE = CMD_ERASE;,在地址0x700000+0x2000不应该是0x60吗,为什么我看是全0啊
feng wu2:
回复 Tony Tang:
非常感谢,已经解决了。
原来我有个误区就是这个ALE我要给的是地址,也就是要算出我想进行读写的页的偏移地址。但是实际不是这样的
这个ALE其实代表的是我要操作的第几块第几页,也就是在擦除的时候ALE就要告诉擦除第几块,而读写的时候ALE要告诉的是第几页。
然后再看对应nand的datasheet中的地址周期的介绍就能很好理解了