你好,请教以下两个问题
前提:我在C6455上调试的代码,现在在C6454上运行出现了问题
1, C6454和C6455的代码是否兼容?代码(在C6455上调试没问题)在C6454上使用EMIF和DMA读取fpga端图像时,图像是花的,但在C6455上是正常的
2, EMIF走线是否对数据传输是否有大的影响,布板应该注意一些什么地方?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Jun Ma:
你好!
是同一个设计的电路板上还是不同的电路板?C6455和C6454的频率是一样的吗?不知是否是DDR2 EMIF。EMIF走线可能影响数据传输。是否可以脱离图像进行一些基本数据访问测试看看数据是否错误,有无规律。
布板请参考下面几个链接文档。
focus.ti.com/.../getliterature.tsp
focus.ti.com/.../getliterature.tsp
谢谢!
Yu Liu您好,现在我们用基本的数据进行测试,结果无误,但是接相机时,出现错误。我先把我们的构架介绍如下:
C6454前端输入是通过EMIF接一个异步fifo,DSP通过gpio中断,利用EDMA来读取数据。我们测试时,如果将异步fifo的数据用一个累加数进行测试,dsp获取的数据是正确的。但是如果fifo的输入为相机数据时,dsp接收数据出现行错乱。我们已经证明相机没问题。
在c6455的开发板上运行代码时,是没有问题的,经我们查证,c6454和c6455的区别主要是主频和L2ram,我们采用的是和c6455相同主频 1ghz的c6454,L2ram的空间映射也已经修改。因此排除代码问题。
硬件上,为何测试数据无问题,而相机数据有问题?情况比较蹊跷,想问下有没有好的建议和测试方法。谢谢!
depeng kong:
您好!
你们证明相机没有问题是指相机传输的数据没有问题,不知道是否时序配合上也没有问题?感觉像配合上的问题。
是否有EDMA读FIFO是没有数据或者EDMA读数据不够及时导致FIFO满数据丢失的问题?
是否能够让相机持续输出一个方格图像然后在接受侧观察问题。
另外,EDMA是否使用了FIFO寻址模式?是否可以改为固定地址模式?参见下面链接勘误表中的“2.1.4 EMIFA: EDMA FIFO Addressing Mode Should Not Be Used When Reading from EMIFA”。
Yu Liu:
您好,非常感谢您细致的回答。
EDMA之前已经根据勘误表中的说明进行设置,而且程序已经在c6455开发板上验证通过。我们自制的硬件板也是仿照开发板来做的。
因此,我们先考虑到出现错误无非有两个原因,一是c6454和c6455芯片的差别,二是我们硬件的问题。
今天发现,我们拿到的c6454是720MHZ主频的,和C6455(1G)的主频不一样。我想先把主频调整。输入时钟为50MHZ,配置如下:
PLLM_val = 14;//14*50=700MHZ,之前C6455为20*50
PREDIV_val = 1;//预分频为1
PLLDIV4_val = 8;//sysclk4 8分频,与之前C6455开发板相同,用作EMIF时钟
PLLDIV5_val = 4;//sysclk5 4分频,与之前C6455开发板相同
问题1:直接调整PLLM是否合适?
问题2:由于异步fifo输出时钟接EMIF时钟,由于修改主频后,PLLDIV4_val 分配后时钟也会改变,此时钟大小是否会导致数据错误或者时序配合错误?
其中,异步fifo输入为 8位图像数据,深度为2048,输出为32位接EMIF,通过计数器满1280后给中断到DSP,DSP通过32EMIF,EDMA读取数据。
调整PLLM应该没有问题。主频导致的时钟改变需要查FIFO的资料确认时序配合问题。在你的设计中1280满了之后进行EDMA搬运时是否还有新的数据进入FIFO。如果有的话,还有考虑数据取走的速度。