用的创龙的138nandflash例程,板子是自己做的,nandflash硬件连接相较于创龙开发板只修改了ALE,CLE的连接,从A2A1改成了A1A0,相应的在历程中只修改了地址和命令寄存器地址的偏移值:
nandInfo->dataRegAddr = (SOC_EMIFA_CS3_ADDR + 0x00);
nandInfo->addrRegAddr = (SOC_EMIFA_CS3_ADDR + 0x04);
nandInfo->cmdRegAddr = (SOC_EMIFA_CS3_ADDR + 0x08);
但是测试后发现读写数据不一致,读出来的数据在某些地方会有重复。而且暂停程序后程序停在了ECC错误的位置。其中
txData是写进去的值,rxData是读出的值。如图:
请问能知道是哪里出问题了吗?谢谢。附件是我的main.c文件
Shine:
ALE,CLE接A2,A1。
20.2.5.6.2 Connecting to NAND Flashhttp://www.ti.com/lit/ug/spruh77c/spruh77c.pdf
li zhi yuan li:
回复 Shine:
这个我看到了。。你的意思是只能接A2A1吗?还有我的flash是1G的。是不是不支持啊?
Shine:
回复 li zhi yuan li:
按手册接,nand flash不是地址线寻址,理论上是没有最大值限制的,1G可以。
li zhi yuan li:
回复 Shine:
难道不可以接A1A0吗?我板子是A1A0的。