This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

访问C6678 EVM板 EMIF接口外挂NAND Flash时的问题



    我现在用的是6678的EVM板,目的是向EMIF外挂的NAND Flash读写数据,Nand Flash对应的寻址空间是CS2(0x70000000)。

在pdk_C6678_1_0_0_17/packages/ti/platform/evmc66781/platform_lib/src/evm66x_nand.c中,有擦除函数及读写函数。

我写的程序段如下:

InitMainPLL();    //配置PLL

NandConfig();    //配置EMIF接口等,定义在evm66x_nand.c中

Open_val = NandOpenDevice();    //Open device ,定义在evm66x_nand.c中

nop_delay(1000000);    //延迟

Erase_val = nandFlashBlockErase(&gDeviceNand,0);    //擦除Block 0,定义在evm66x_nand.c中

nop_delay(1000000);   //延迟

Write_val = WriteNandPage(&gDeviceNand,Nand_Flash_addr,(uint8_t *)Write_data);    //写数据,定义在evm66x_nand.c中

运行结果是:调用过nandFlashBlockErase(&gDeviceNand,0)后,0x70000000之后的地址范围(对应Block 0)值均为0xE0E0E0E0,若换成其他的Block,那么擦除之后,这个Block对应的地址范围也是0xE0E0E0E0,理论上应该都是0xFFFFFFFF的。擦除没有成功,之后调用WriteNandPage(&gDeviceNand,Nand_Flash_addr,(uint8_t *),Write_data);    自然也写不进去任何数据。我觉得这里用的函数都是TI封装好的函数,应该不会有什么问题,但是擦除始终不成功。希望哪位高手曾经访问过Nand Flash,可以指点一下,感激不尽!