我在i.mx 21上使用了一片三星K9F4G08,没有使用NorFlash器件。
在对NFC编程时出现了很奇怪的现象,擦除Flash的过程没有问题。在写入Flash时,因为K9F4G08是2KBytes的Flash,所以我使用了MAB0,在整个写入过程中,我对比了MAB0~MAB3和写入区域的内容,完全一致。
但是再从Flash中读出时,问题就出来了,以每个页为单位,只有前512字节能被读出来,剩下的1536个字节全是0xFF。
我在<<i.mx 21 Applications Processor Reference Manual (Rev.3, 04/2007)>>的第19-18页,也就是460页对NAND_Flash_Config2寄存器的描述中有一行注解: One page size is determined by SP_EN register bit and NFC_FMS input. It is 528bytes or 16bytes no matter if NFC_FMS is 0 or 1. 这行注解是标在FDO位后面的,貌似每次写入Flash时只能写入512字节,那还怎么对2KBytes页大小的NAND编程呢?
我检查了寄存器<Function Multiplexing Control Register 0x10027814>,它的值是0xFFFFFFEB,即NF_FMS=1,NF_16BIT_SEL=0,与期望值完全一致。
有哪位能帮帮忙?
|