在做DSP与FPGA通信的时候,FPGA用16bit输出0x0001,DSP设置为用BYTEMODE为16bit,ASIZE也为16bit,如下图所示

但是在DSP接收数据缓冲区观察到的都是0x0101,不知道是哪里出了问题,求解答,谢谢!!!
Shine:
请量一下时序是否正确?看时序上是否输出0x0001?
QIN YANG2:
回复 Shine:
恩恩,测过了,时序上输出的是0x0001
Shine:
回复 QIN YANG2:
其他EMIF管脚的时序呢?是否完全符合数据手册上的Figure 5-18. Asynchronous Memory Read Timing for EMIF时序图?
QIN YANG2:
回复 Shine:
测过其他引脚的,下面这张图是FPGA抓取的引脚信号
引脚从上到下分别是CS片选、写使能(为高)、读使能、还有FPGA端的输出使能、以及RAM_OUT,目前读使能有点混乱,在片选时间内有一段时间会拉高,不知道是哪里的问题
Shine:
回复 QIN YANG2:
是直接操作寄存器配置的吗?EMIF的寄存器是在I/O空间。
QIN YANG2:
回复 Shine:
是的,谢谢您,这个问题已经解决了。但是还有一个问题,在emif通信过程中,从FPGA读过来的数据只有2K但是却充满了整个1M的片选空间,不知道是怎么回事。
Shine:
回复 QIN YANG2:
方便分享一下解决方法吗?
充满整个1M空间可能FPGA和EMIF地址线连接是没有设成唯一对应的地址。
QIN YANG2:
回复 Shine:
也不算解决了,就是FPGA那边发送的是16bit的数据,到DSP这边32位的内存里,是要将两个整合在一起再存起来,之前不知道为什么,这样理解是对的吧?
还有想问下您,因为FPGA与EMIF地址线连接上了以后,设置好了片选,就会把FPGA地址映射到片选区域的开始地址上了对吧,那么怎么设置成唯一对应呢?
TI中文支持网


