TI论坛
直播中

周蓓

7年用户 231经验值
私信 关注
[问答]

请教C6747 16位nandflash烧写问题

C6747使用K9K2G16ABA,利用test程序可以读出ID号,想烧写.bin文件,修改REL_LSP_02_20_00_07下的nand_writer程序,将
DEVICE_BusWidth DEVICE_emifBusWidth( void )
[
    return DEVICE_BUSWIDTH_8BIT;
]
修改为
DEVICE_BusWidth DEVICE_emifBusWidth( void )
[
    return DEVICE_BUSWIDTH_16BIT;
]
初始化设置时将EMIFA的CS3设置也改为16bit,但跑到NAND_readPage这个程序的ECC校验时,会return E_FALL,查看这时候的src和dest的值,发现dest会间隔1个或2个或四个数的值为0,这是什么原因??

回帖(6)

周蓓

2018-7-25 06:37:27
我使用的是附件的程序,加载的gel文件,调试了一个星期仍没找到问题
举报

李波

2018-7-25 06:48:39
对照一下手册看K9K2G16ABA是事满足下面所说的条件:
20.2.5.6.8 Interfacing to a Non-CE Don't Care NAND Flash
As explained in Section 20.2.5.6.4, the EMIFA does not support NAND Flash devices that require the chip
select signal to remain low during the tR time for a read. One way to work around this limitation is to use a
GPIO pin to drive the CE signal of the NAND Flash device. If this work around is implemented, software
will configure the selected GPIO to be low, then begin the NAND Flash operation, starting with the
command phase. Once the
                                                                         http://processors.wiki.ti.com/index.php/Main_Page
Think Over Before Asking.
http://www.catb.org/~esr/faqs/smart-questions.html#goal
举报

周蓓

2018-7-25 07:04:28
引用: lifei639156 发表于 2018-7-25 06:48
对照一下手册看K9K2G16ABA是事满足下面所说的条件:
20.2.5.6.8 Interfacing to a Non-CE Don't Care NAND Flash
As explained in Section 20.2.5.6.4, the EMIFA does not support NAND Flash devices that require the chip

您好,我看了数据手册,MT29F2G16 read page和program page 都是with CE# don't care,而且ID为0xCA在支持的列表中
举报

周蓓

2018-7-25 07:22:52
终于找到问题的原因了,现在可以烧写程序了,总结一下,供参考
1、NAND_open()->ASYNC_MEM_Open()->DEVICE_AsyncMemInit()->DEVICE_pinmuxControl(15,0xFFFFFFFF,0x11888888);
将管脚设置为8位,注释掉函数中的所有管脚定义
2、(*hAsyncMemInfo->hDeviceInfo->fxnInit)(hAsyncMemInfo);
调用了DEVICE_ASYNC_MEM_Init()
ABCR[hAsyncMemInfo->chipSelectNum] = 0x3FFFFFFC | ((hAsyncMemInfo->busWidth == DEVICE_BUSWIDTH_8BIT)? 0 : 1);修改了寄存器CE3CFG的值,注释掉即可。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分