C6457通过EMIFA连接FLASH,参照CSI驱动例程,修改相关配置参数,
#define CSL_EMIFA_ASYNCWAIT_DEFAULTS {\
(CSL_EmifaArdyPol)CSL_EMIFA_ARDYPOL_LOW, \
(Uint8)CSL_EMIFA_ASYNCWAIT_MAXEXTWAIT_DEFAULT, \
(Uint8)CSL_EMIFA_ASYNCWAIT_TURNARND_DEFAULT \
}
/** The default values of EMIFA CEConfig for Async structure */
#define CSL_EMIFA_ASYNCCFG_SELECTSTROBE_DEFAULT 0x00
#define CSL_EMIFA_ASYNCCFG_WEMODE_DEFAULT 0x00
#define CSL_EMIFA_ASYNCCFG_ASYNCRDYEN_DEFAULT 0x00
#define CSL_EMIFA_ASYNCCFG_WSETUP_DEFAULT 0x0F
#define CSL_EMIFA_ASYNCCFG_SSTROBE_DEFAULT 0x3F
#define CSL_EMIFA_ASYNCCFG_WHOLD_DEFAULT 0x07
#define CSL_EMIFA_ASYNCCFG_RSETUP_DEFAULT 0x0F
#define CSL_EMIFA_ASYNCCFG_RSTROBE_DEFAULT 0x3F
#define CSL_EMIFA_ASYNCCFG_RHOLD_DEFAULT 0x07
#define CSL_EMIFA_ASYNCCFG_ASIZE_DEFAULT 0x01
hwSetup.ceCfg[0] = NULL; hwSetup.ceCfg[1] = &asyncVal;
hwSetup.ceCfg[2] = NULL;
hwSetup.ceCfg[3] = NULL;
无法进入写状态,, 比如:pAsyncData[index] = tempData; (pAsyncData 地址为0xb0000000) , 通过仿真调试, 示波器观察如图:
D5为CE3 , D3为AOE D1为AWE。
电路图如下:
Shine:
请问“无法进入写状态”是指执行flash的program命令没成功?那flash clear/erase都成功了吗?
bin lin:
回复 Shine:
program命令没有成功
bin lin:
回复 Shine:
乱了,,全搞错了。 我把EMIFA初始化 和 接口寄存器相关配置 的代码屏蔽掉,, 仅仅是片外写操作pAsyncData[index] = tempData,示波器输出就是如上,证明EMIFA没有工作??可能是什么原因引起? 谢谢指教
Shine:
回复 bin lin:
void enableEMIFA()这个函数没去掉吧?
bin lin:
回复 Shine:
没有,而且查看PSC寄存器,也没看出什么异常
bin lin:
回复 Shine:
这个去掉这个函数 void enableEMIFA()
执行完上面的函数后,状态如图:
bin lin:
回复 bin lin:
上面说错了 ,,,,我没有去掉这个函数void enableEMIFA()