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

C6748 的EMIFA 读操作周期和时序与其寄存器配置不一致

我在调试DSP(C6748)通过EMIF与FPGA进行数据读写时遇到一些问题,需要你们的技术支持!

我把测试case简化为: 在DSP 的12KHZ主中断中取FPGA片选信号(CS2)所映射的地址范围中的一个地址的值,然后查看对应的时序图,如下图,

其中最上面的数字表示60M的CLK的数量,可以作为时间参考,接下来按照标记依次为:片选信号CE,读使能信号OE,写使能信号WE,地址总线,数据总线。

关于这个时序图我有几个问题想请教下:

  1. 地址总线上地址在整个读周期结束(CS拉高)后还一直持续的可能原因有哪些,主要是我自己不知道是不是哪里配置出错?
  2. 整个读操作的周期持续了近50个CLK(60M),远远大于在对EMIF控制寄存器进行配置的(Setup+strobe+hold=2+3+2)7个CLK数量的可能原因有哪些?

 时序图:

为了方便分析,我把EMIF初始化配置截图一下:

想问问大家是哪里配置错误还是漏掉什么了吗?

Shine:

1. CS拉高后释放总线,数据线,地址线应该都处于高阻态,这个和寄存器配置没有关系。请检查一下您的硬件连接,不和FPGA连接时,DSP发出的读写是否是否正确?

2. 读到的数据正确吗? FPGA的时序要和DSP的时序匹配,数据线及时提供数据。

,

user6503527:

非常感谢您的快速回复!
1. 好的,我这边请FPGA工程师把数据线和地址线配置为高阻态,DSP再进行读操作看看时序是怎样,还有一个问题就行CS信号本身持续的周期也很长,这个可能原因是什么呢?
2.读到的数据大部分是正确的,但是因为时序不对导致有些地址被连续读两次,然后出错了!
再次感谢!

,

Shine:

请问有在Asynchronous n Configuration Registers (CE2CFG-CE5CFG)寄存器里配置setup, stroble, hold周期吗?配置后,可以看一下CExCFG寄存器,看是否配置成功了。
18.4.5 Asynchronous n Configuration Registers (CE2CFG-CE5CFG)
www.ti.com/…/spruh79c.pdf

,

user6503527:

你好,我在线调试发现我的CE2CFG寄存器的值,除了其中数据总线被改成了16位的,其他的setup,strobe,hold周期都是默认的:

这些周期值没有被改写的原因是初始化出错多吗?

不过因为EMIFA的初始化函数我参照C6748的startware写的,貌似不对,我还不清楚为啥会配置出错!

,

Shine:

您帖的代码里没有看到有初始化这个寄存器的,您再看一下代码里有没有配置CE2CFG寄存器?如果没有的话,可以直接往这个寄存器地址里写数值,不一定要用starterware里的函数配。

,

user6503527:

天啊,我一直以为这个封装的函数是在写这个寄存器里的setup/strobe/hold等配置:

那我再试试直接写这个寄存器看看吧!!

非常感谢!

,

user6503527:

找到问题了,是因为上电初期CE2CFG的初始值是0x3FFFFFFD,再按照startware的EMIFA是用或赋值,所以基本改变不了寄存器的初始值,相当于startware的一个小bug!
谢谢您的耐心指导,我改完后再试试看,希望恢复正常!

,

Shine:

好的,谢谢分享!

赞(0)
未经允许不得转载:TI中文支持网 » C6748 的EMIFA 读操作周期和时序与其寄存器配置不一致
分享到: 更多 (0)