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

TMS570LC4357的EMIF外设中nDQM信号如何控制?

TI的专家,您好

我们现使用的处理器是TMS570LC4357,处理器通过EMIF与FPGA通讯。总线配置为异步,16位,普通模式,详细配置的代码如下:

  emifREG->CE3CFG = (0U  << EMIF_BIT_SS)       |
                    (0U  << EMIF_BIT_EW)       |
                    (1U  << EMIF_BIT_W_SETUP)  |  
                    (14U << EMIF_BIT_W_STROBE) |  
                    (0U  << EMIF_BIT_W_HOLD)   |
                    (15U << EMIF_BIT_R_SETUP)  |  
                    (15U << EMIF_BIT_R_STROBE) |  
                    (0U  << EMIF_BIT_R_HOLD)   |
                    (1U  << EMIF_BIT_TA)       |
                    (1U  << EMIF_BIT_ASIZE);     

根据以往经验,读写过程中nDQM的时序是差不多的,nDQM01先拉低一段时间,拉高后隔一段时间nDQM2再拉低。

但是通过FPGA观察到的nDQM信号时序不正常。写入时,nDQM0和1被同时拉低;读取时,nDQM0先拉低一段时间,拉高后隔一段时间nDQM1再拉低。

我们查找手册并没有找到关于nDQM信号的设置部分,请问TMS570LC4357的nDQM信号正常的时序是怎样的?有没有寄存器来配置?

谢谢

Susan Yang:

您指的是如下图?

user5655976:

回复 Susan Yang:

我在文档中看到过这个时序图,我现在的问题是:
在配置了16位总线通讯后,当执行一次写入或者读取一个字的操作时,具体nDQM的时序应该是怎样的?在这个图上不能体现出来。
比如说我在代码中对于分配到地址0x64000000的变量uint16 a,执行一次a=0x1234,此时,nDQM的时序是怎样的?
1、是0x1234同时送上数据总线,并且nDQM[0,1]都为低,还是说一个先以后为低,顺序和保持低的时间是怎样的?
2、进一步的问题是,有没有寄存器可以配置这个行为,还是说是固定的?

谢谢

user5655976:

回复 user5655976:

您好,这个问题能解答吗?谢谢

Susan Yang:

回复 user5655976:

很抱歉,我昨天有点事,所以延迟了回复

我已经在E2E上为您寻求了资深工程师的帮助,您可以看一下是否需要补充

e2e.ti.com/…/804227

user5655976:

回复 Susan Yang:

您好,刚刚查看了一下还没有答复,希望能早点的答复。

此外,我们有一个新的问题,就是在EMIF上送出数据大小端的问题。根据我们所知,TMS570LC4357是大端的。

从EMIF送出去的数据是否可以通过配置改变大小端呢?

例如,我们外部空间0x64027000定义一个U16 data,写入0xA55A这个值,

如果是大端的情况下,先送出低地址,nDQM0为低,值为0xA5;然后送出高地址,nDQM1为低,值为0x5A。

我们想知道是否可以通过配置,改变这个行为。先送出高地址,DQM1为低,值为0xA5;然后送出低地址,nDQM0为低,值为0x5A。

Susan Yang:

回复 user5655976:

很高兴您能解决问题,谢谢分享解决方法!

user4256184:

楼主您好,想请教一下EMIF与FPGA通讯配置为异步模式,但FPGA内部的双口RAM是同步的,这个RAM的时钟线是怎么连接的,恳请赐教

user5655976:

回复 user4256184:

你好,我们的FPGA中对所有的EMIF信号都使用FPGA的时钟信号做了同步,RAM使用的就是FPGA的时钟信号。

user4256184:

回复 user5655976:

好的,明白了,感谢您的指导!

赞(0)
未经允许不得转载:TI中文支持网 » TMS570LC4357的EMIF外设中nDQM信号如何控制?
分享到: 更多 (0)