工程师: 我在项目中遇到一个问题,设计中参考ST公司的资料AN2287采用一片STR710F和一片NAND FLASH(NAND512W3A)连接,他们之间的接口如下图。这里我将FLASH的ALE、CLE、WP、R/B 全部连接到STR710的地址线上,同时在程序中将这些地址线做初始化时按照复用功能(也就是做地址线)定义: EMI_Config(3,EMI_ENABLE | EMI_WAITSTATE(3) | EMI_SIZE_8); GPIO_Config(GPIO2,0x0008,GPIO_AF_PP); //config P2.3 as NANF_/CS GPIO_Config(GPIO2,0x0010,GPIO_AF_PP); //config P2.4 as NANF_/WP GPIO_Config(GPIO2,0x0020,GPIO_AF_PP); //config P2.5 as NANF_CLE GPIO_Config(GPIO2,0x0040,GPIO_AF_PP); //config P2.6 as NANF_ALE GPIO_Config(GPIO2,0x0080,GPIO_IN_TRI_CMOS); //config P2.7 as NANF_R/B 这样对NAND FLASH的操作就完全是对相应地址的读写操作了。但这里发现一个问题,就是在FLASH的芯片资料中说明,当写入命令或地址时,CLE和ALE(对应MCU的地址线)在写信号WE的上升沿锁存时保持时间至少应达到10ns,而MCU的芯片说明中写信号WE发出之后,地址线在WE的上升沿后的保持时间只有3ns,这样一来他们之间的时序就不匹配了。用示波器测试结果也是3ns。这是不是说他们之间接口时一定要把这几条线要按照I/O口的方式使用,而不能完全作为地址线操作?另外我参考的ST资料AN2287就是讲这两者之间如何接口的,给出的代码我看了,发现初始化时有的也是按照I/O口的方式,而有的是按照地址线初始化。完全按I/O口线控制是没问题的,但速度慢,我现在就想改成地址总线映射控制的方式来提高速度,同时不必再加其他的胶合逻辑电路。请教各位看能否可行。谢谢!
|