在开发2k page nand flash驱动的时候,遇到以下问题:
1.我用st的1Gbit的Nand Flash,芯片的datasheet里面没有单独读写spare区的命令,怎样能不对Main Data区进行操作,就可以对spare区进行单独访问即可以读和写?
2.芯片的datasheet是说A0-A11是Column Address, A12-A30是Row Address,A0-A7第一个周期发送,A8-A11第二个周期发送,A12-A19第三个周期发送,A20-A27第四个周期发送,A28-A30第五个周期发送。而实际代码的时候,第三次是写A11-A18到i.MX21的NAND FLASH的寄存器。
static D_BOOL PageAddress(D_UINT32 ulAddress)
{
int i;
for (i = 0; i < 5; i++) {
if (i == 0) {
if (!AddressInput(0x00& 0xFFFF))
return FALSE;
} else if (i == 1) {
if (!AddressInput(0x00& 0xFFFF))
return FALSE;
} else {
if (!AddressInput((ulAddress>>((i-1)*8+3))& 0xFFFF))
return FALSE;
}
}
return TRUE;
}
随便提一下,我现在是移植datalight公司的FlashFX,文件系统能用了,但其自带的单元测试过不了。
The Random Data Output command can be used to skip some data during a sequential data output.
spare区是不能被Column Address定位的,如果只操作spare区的目的是减少数据传输的话,可以发送Random cmd+2046 addr(接近2048 <2048) 来访问后面的66个byte
可以把你的FlashFX分享下么