#define STNOR_GPMC_CONFIG1 0x00211000
#define STNOR_GPMC_CONFIG2 0x00080800
#define STNOR_GPMC_CONFIG3 0x00020201
#define STNOR_GPMC_CONFIG4 0x06020602
#define STNOR_GPMC_CONFIG5 0x00060808
#define STNOR_GPMC_CONFIG6 0x060000c2
这是我设置的寄存器。当去掉wait功能时,读写没问题,我想加上wait信号,但是一添加wait功能,我一个字节都写不进去,直接卡死。
我想用wait实现的功能是,在gpmc写入fpga fifo被写满时,置wait有效。使得gpmc不能继续写入fifo。
有没有用过wait的朋友帮帮忙。
joke ness:
问题已得到确认。
使用intel模式时,可以使用wait功能,使用motorola模式时,不行。
简单的说使用wait线时,片选必须比读写宽。
当使用motorola模式时,片选悬空,利用ADV与对端的片选相连,应该是一个可行的解决方案。
唉,只能改硬件连接了。
虽然不能说是芯片的bug,但这个容错性实在是比较坑。我可以接收读写错误,但也不能直接卡死啊。
这是我在网上找的。我把CSWROFFTIME和CSRDOFFTIME已经设置的比读写cycle长了还是卡死,还有那个motorola模式和intel模式在哪里啊,我在pdf找不到啊
Yaoming Qin:
回复 joke ness:
joke ness
问题已得到确认���
使用intel模式时,可以使用wait功能,使用motorola模式时,不行。
简单的说使用wait线时,片选必须比读写宽。
当使用motorola模式时,片选悬空,利用ADV与对端的片选相连,应该是一个可行的解决方案。
唉,只能改硬件连接了。
虽然不能说是芯片的bug,但这个容错性实在是比较坑。我可以接收读写错误,但也不能直接卡死啊。
这是我在网上找的。我把CSWROFFTIME和CSRDOFFTIME已经设置的比读写cycle长了还是卡死,还有那个motorola模式和intel模式在哪里啊,我在pdf找不到啊
joke ness:
回复 Yaoming Qin:
我说的gpmc啊,那个motorola模式和intel模式我在pdf里只在LCD部分找到,GPMC那里我也没找到motorola模式和intel模式啊,上面那一大段话是我在网上找的,他使用GPMC得wait信号时也会卡死,但是他给出的原因我看不太懂。。
还有就是我设置wait低有效时写入的话直接卡死,设置了wait高有效的话可以写入但是当改变wait信号将其置高时按说应该停止写入的,但是毫无反应,数据还会继续写入,就好像wait信号失效一样,不知道什么原因
Jian Zhou:
回复 joke ness:
intel模式和motorala方式应该是总线连接的两种方式,我们的GPMC应该是符合intel方式的。请问你应该是用GPMC连接外部FPGA或者类似SRAM的总线设备吧,你可以仔细看下TRM GPMC章节中关于wait的时序以及寄存器描述