am335的代码是参考这个写的:http://www.cnblogs.com/imapla/p/4122609.html
FPGA检测GPMC输出的OE信号,每来一次OE的下降沿,将16位数据输出,读取的数据是正确的,但有时候会出现下面数据漏掉的现象
用signaltap看发现漏掉的地方会出现一次短暂的OE信号,这个应该不会有的,使得后面的输出全部错位,具体如下:
Jian Zhou:
如果去掉DMA传输,会有这个问题么?
user3784487:
回复 Jian Zhou:
不使用DMA也会出现这个问题。
Steven Liu1:
回复 user3784487:
看上去你现在的错误都是起源于那个初始OE信号的拉低,查一下那个OE信号拉低的是主动拉低还是被动被FPGA给拉低的。
把AM335x和FPGA的链接断掉,用示波器看看AM335x的OE主动输出也是这个样子吗?还是说是因为FPGA的原因拉低了,这样下一步才知道往哪个方向走。
user3784487:
回复 Steven Liu1:
问题解决了,是GPMC的时序配置有问题,按照手册上的例子重新设置了下就读取正常了。之前参考网上的那个代码的时序是不对的。
tao li89:
回复 user3784487:
你好,请问你们的板子GPMC上除了挂FPGA外还挂其他器件吗,譬如NAND flash之类的?这些器件与GPMC之间是否需要加SN74LVC16T245等等这些器件?