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

OMAP3530 GPMC 配置不对

小弟最近在linux下做一个驱动,OMAP3530通过GPMC与FPGA进行通信,速度要求为大于20.48MByte,我想通过异步的方式进行传输。通过配置,从ARM端得到了一个稳定的时序如图:

SignalTap II得到的时序图

昨天 22:39 上传

下载附件 (46.25 KB)SignalTap II得到的时序图

我的配置如下:
#define FPGA_GPMC_CONFIG1 0x00001000
#define FPGA_GPMC_CONFIG2 0x000a0a00                //CSRDACCESSTIME=10,   CSWRACCESSTIME=10
#define FPGA_GPMC_CONFIG3 0x00020200                   //ADVRDOFFTIME=2,     ADVWROFFTIME=2
#define FPGA_GPMC_CONFIG4 0x08050805                   //OEOFFTIME=8,   WEOFFTIME=8,   OEONTIME=5,   WEONTIME=5
#define FPGA_GPMC_CONFIG5 0x00080b0b                //RDCYCLETIME=11,    WRCYCLETIME=11#define FPGA_GPMC_CONFIG6 0x08000000                   //WRACCESSTIME=8

我的问题如下,如图,我设置的是两次连续读取之间的时间间隔为0,得到的时序中可以看到,两次CS拉低之间有很长一段高电平,占用了大量的时间,远远达不到20M的要求。一时间找不到原因。

noaming:

两次连续读取之间的时间间隔不能设置到0,这个是芯片GPMC访问本身的局限。

xia Lee:

用DSP控制应该可以做到,我这边CS的波形是完全没有间隔的

xin liu1:

您好,请问楼主,GPMC里的GPMC_CONFIG1-GPMC_CONFIG7

这些时间参数是如何计算出来的?

CSRDACCESSTIME=10,   CSWRACCESSTIME=10

ADVRDOFFTIME=2,     ADVWROFFTIME=2

OEOFFTIME=8,   WEOFFTIME=8,   OEONTIME=5,   WEONTIME=5

RDCYCLETIME=11,    WRCYCLETIME=11 ?

Feng Dong:

回复 xin liu1:

若想提高速度应该用同步而不是异步时序

Devin:

回复 noaming:

你好,我试过不设置为0,但是也不行,始终不能将片选的高电平的宽度降低,有没有可能是我在驱动中读取的函数ioread16_rep(info->IO_ADDR_R, kern_buf, len/2);在两次读取时所占用的时间太长呢?

Devin:

回复 xia Lee:

DSP啊,这个确实还不太了解,可以再讲得详细点么?谢谢!

Devin:

回复 Feng Dong:

我已经修改配置为同步了,但是还是一样!不知道问题出在哪里。

Devin:

回复 xin liu1:

首先是看芯片手册,手册上面有相关的时序,至于那些参数,我的理解是GPMC_FCLK的个数。

Devin:

回复 xia Lee:

小弟初学,所以还不太会,还向您多请教一下,DSP如何去控制?

Feng Dong:

回复 Devin:

你看手册的同步burst的实现,一次读取更多的数据,另外同步输出时钟是可以调整的

赞(0)
未经允许不得转载:TI中文支持网 » OMAP3530 GPMC 配置不对
分享到: 更多 (0)