在EMIF通信过程中,两个片选信号对应一个地址信号,请问这有可能会是什么问题呢???求解答,谢谢!
Shine:
EMIF的片选信号会映射到不同的地址空间,可以看一下数据手册里的memory map。每次EMIF读写操作,只会选通一个片选信号,不会出现两个片选信号同时选通的情况。
QIN YANG2:
回复 Shine:
恩恩,之前时序好像出了问题,但是现在相邻地址的增量是8,下图所示:
请问这是怎么回事儿呢??
Shine:
回复 QIN YANG2:
请问代码怎么写的?
QIN YANG2:
回复 Shine:
/************************异步等待配置**************//* Assign values to async wait config structure *///asyncWaitConfig.waitPol= CSL_EMIF_WP_LOW;//与NAND有关,不用设置asyncWaitConfig.waitPin= waitPin;asyncWaitConfig.waitCycles = CSL_EMIF_ASYNCWAITCFG_WAITCYCLE_DEFAULT;//默认值为0x80/***************对异步传输的初始化配置的过程************//* Assign values to nand async config structure */asyncConfig.selectStrobe = CSL_EMIF_ASYNCCFG_SELECTSTROBE_DEFAULT;asyncConfig.ewMode= CSL_EMIF_ASYNCCFG_WEMODE_DEFAULT;asyncConfig.w_setup= CSL_EMIF_ASYNCCFG_WSETUP_DEFAULT;asyncConfig.w_strobe= CSL_EMIF_ASYNCCFG_WSTROBE_DEFAULT;asyncConfig.w_hold= CSL_EMIF_ASYNCCFG_WHOLD_DEFAULT;asyncConfig.r_setup= CSL_EMIF_ASYNCCFG_RSETUP_DEFAULT;asyncConfig.r_strobe= CSL_EMIF_ASYNCCFG_RSTROBE_DEFAULT;asyncConfig.r_hold= CSL_EMIF_ASYNCCFG_RHOLD_DEFAULT;asyncConfig.turnAround= CSL_EMIF_ASYNCCFG_TAROUND_DEFAULT;asyncConfig.aSize= CSL_EMIF_ASYNCCFG_ASIZE_DEFAULT;/*****************对异步传输进行emif配置************//* Assign values to config structure */asyncCfg.chipSelect= chipSel;//应该是需要加RAMwidth的,而且还有emifopmode工作模式,在CSL_NandConfig里面有定义这两部分,看看其他结构体里面有没有//nandCfg.nandWidth= CSL_EMIF_8_BIT;//还需不需要定义RAM的width//nandCfg.nandPageSize= CSL_NAND_PAGESZ_512;//这个应该不用了吧,没有pageasyncCfg.emifAccess= CSL_EMIF_16BIT;//改成了16位nandCfg.emifOpMode= CSL_EMIF_OPMODE_POLLED;//nandCfg.nandType= CSL_NAND_SMALL_BLOCK;//同样不需要asyncCfg.asyncWaitCfg = &asyncWaitConfig;asyncCfg.asyncCfg= &asyncConfig;/********************进行配置*********************//* Configure Asynchronous settings */status = EMIF_asyncConfig(hEmif, &asyncCfg);//在这里面需要把RAMwidth和EMIFopmode加进去if(status != CSL_SOK){printf("EMIF Asynchronous Config Failed!!\n");return(result);}这是EMIF配置部分,是通过例程修改的,现在地址增量是1,但是每此数据都是读两遍,不知道是怎么回事。
Shine:
回复 QIN YANG2:
请看一下ESCR寄存器的BYTEMODE是否设成了0?
QIN YANG2:
回复 Shine:
恩恩,bytemode是设置成00了的
Shine:
回复 QIN YANG2:
看一下时序图是否跟你配置的一致?