TI中文支持网
TI专业的中文技术问题搜集分享网站

关于AM3358中GPMC+EDMA提速的方案讨论

各位大神,专家,请教一个AM3358芯片上的GPMC+EDMA的方案。

背景介绍:主要目的是为了通过GPMC接口将FPGA侧FIFO内缓存的图像数据传递至AM3358中,之前已经实现GPMC+EDMA的方案,不过带宽仅仅达到57MB/s。

         当时GPMC侧参数设置为:

        

         且GPMC是开启了busrt模式的,ATTACHEDDEVICEPAGELENGTH设置为2h——即16words。

         而同时EDMA的参数设置为:

         同样的,在FPGA采样得到的GPMC接口的波形如下:

         这样实现的效果就是一次burst的字节数为2048,但是每个OE低电平期间读走的数据是2个16bit数据即4个字节数据。(GPMC_A=8'h04表示FPGA映射的地址为8'h04)

 

目前的测试异常:

         现在我要提高FPGA与ARM之间的传递速度,而前面的这种方案的速率已经不够了。我希望能够在每次OE低电平期间能够多读一些数据出来。

         因此,我根据之前的经验,就是把EDMAAPP_MAX_ACOUNT加大,也即每个OE低电平获取的数据更多,同时调整GPMC的参数。

         调整如下:

仅仅修改了上面的参数之后,我们从FPGA侧采读取时候的波形,得到波形如下:

不仅仅GPMC_A很奇怪的变成了全0,而且OEN的低电平宽度也变得异常,因为我的OEOFFTIME相对于之前也只是从5改为了7,但是从上下图对比看可以看出,OEN的低电平变得长了一倍多。

 

         然后又做了一种调整:

         这种调整的原因在于,考虑到前面ATTACHEDDEVICEPAGELENGTH设置为2h——即16words,我们这里把EDMA的突发ACOUNT也设置为32(即16个16bit数据)。得到的波形如下:

         这时候地址从一开始的04变成了后面00和20来回变化。而且OEN低电平信号宽度来回变化。

 

期望结果:

         我希望在更改参数配置之后,GPMC_A地址能够像一开始一样维持8'h04不变,然后仅仅是OEN正常的拉宽,同时对应读出更多的有效数据,从而能够使得FPGA和GPMC之间的带宽提高至100MB/s左右。

 

附注:

         其实每次不加EDMA的时候,单独用GPMC的burst方案,在修改GPMC参数的时候,都能得到正常的波形如下:

         但是为了让ARM不去干预这个图像传递过程,而是直接EMDA搬移至ARM外挂的DDR上面,所以GPMC+EDMA的方案又势在必行。

         因此想咨询一下大家,是我对于EDMA方面,有哪些参数考虑的有问题吗?忘批评改正。

david hu1:

用DMA,memory to memory可以试试,16位位宽,速度为fclk/2,可以上100M

赞(0)
未经允许不得转载:TI中文支持网 » 关于AM3358中GPMC+EDMA提速的方案讨论
分享到: 更多 (0)