打印

求助DSP和CPLD用XINTF通讯问题?

[复制链接]
3809|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hmf1235789|  楼主 | 2016-8-22 13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DSP28335用XINTF访问CPLD区域0地址上的数据,其中DSP2833x_Xintf.c文件设置如下:
    EALLOW;
SysCtrlRegs.PCLKCR3.bit.XINTFENCLK = 1;        //开启XINTF时钟信号
XintfRegs.XINTCNF2.bit.XTIMCLK = 1;        //基准时钟XTIMCLK = 1/2 SYSCLKOUT
XintfRegs.XINTCNF2.bit.WRBUFF = 0;        //无写缓冲寄存器
XintfRegs.XINTCNF2.bit.CLKOFF = 1;        //禁止XCLKOUT
XintfRegs.XINTCNF2.bit.CLKMODE = 1;        //XCLKOUT=XTIMCLK/2

XintfRegs.XTIMING0.bit.XWRLEAD = 3;        //区域0写建立时间为11b,周期数为6
XintfRegs.XTIMING0.bit.XWRACTIVE = 7;        //有效时间为111b,周期数为14
XintfRegs.XTIMING0.bit.XWRTRAIL = 3;        //跟踪时间为11b,周期数为6
// Zone read timing
XintfRegs.XTIMING0.bit.XRDLEAD = 3;        //区域0读建立时间为11b,周期数为6
XintfRegs.XTIMING0.bit.XRDACTIVE = 7;        //有效时间为111b,周期数为14
XintfRegs.XTIMING0.bit.XRDTRAIL = 3;        //跟踪时间为11b,周期数为6

// double all Zone read/write lead/active/trail timing
XintfRegs.XTIMING0.bit.X2TIMING = 1;        //比值2:1

// Zone will sample XREADY signal
XintfRegs.XTIMING0.bit.USEREADY = 1;        //XREADY信号采样
XintfRegs.XTIMING0.bit.READYMODE = 1; //异步采样

XintfRegs.XTIMING0.bit.XSIZE = 3;        //数据总线宽度,16位
GPIO设置为16位地址线,单独读取一个地址上的数据时,数据正确,但是地址总线低位XA0通过观察GPBDAT变量,发现一直处于高电平,不会随着地址改变而变低,其他总线位正确。另外多个地址先后取地址时,数据发生窜扰,读取到前一位地址数据或后一位数据,请问CPLD的时序相对DSP来说是过快还是过慢?要修改XINTF时序中的建立、有效、跟踪时间的哪一个?

相关帖子

沙发
hmf1235789|  楼主 | 2016-8-22 15:41 | 只看该作者
问题找到了,CPLD的时序太慢了大概需要0.3us,DSP的时序太快了大概0.013ns,请问怎么把XINTF的时序降下来???达到与CPLD匹配的地步

使用特权

评论回复
板凳
zhangmangui| | 2016-8-22 22:43 | 只看该作者
hmf1235789 发表于 2016-8-22 15:41
问题找到了,CPLD的时序太慢了大概需要0.3us,DSP的时序太快了大概0.013ns,请问怎么把XINTF的时序降下来? ...

CPLD不至于这么慢吧    增大CPLD的频率吧

使用特权

评论回复
地板
gygp| | 2016-8-22 23:02 | 只看该作者
hmf1235789 发表于 2016-8-22 15:41
问题找到了,CPLD的时序太慢了大概需要0.3us,DSP的时序太快了大概0.013ns,请问怎么把XINTF的时序降下来? ...

应该是DSP速度不是快吗

使用特权

评论回复
5
gygp| | 2016-8-22 23:06 | 只看该作者
hmf1235789 发表于 2016-8-22 15:41
问题找到了,CPLD的时序太慢了大概需要0.3us,DSP的时序太快了大概0.013ns,请问怎么把XINTF的时序降下来? ...

CPLD可以系统时钟可以分频一下。

使用特权

评论回复
6
hmf1235789|  楼主 | 2016-8-23 09:14 | 只看该作者
zhangmangui 发表于 2016-8-22 22:43
CPLD不至于这么慢吧    增大CPLD的频率吧

cpld实际要快些,当还是与dsp不匹配,cpld中没有锁相环不能倍频,请问可以修改Verilog语言或将cpld晶振换高吗?

使用特权

评论回复
7
hmf1235789|  楼主 | 2016-8-23 09:16 | 只看该作者
gygp 发表于 2016-8-22 23:06
CPLD可以系统时钟可以分频一下。

dsp的xintf已经是系统时钟的二分频了,cpld里面没有锁相环,不能倍频,还是不能匹配

使用特权

评论回复
8
Rangar| | 2016-8-24 17:03 | 只看该作者
CPLD这么慢吗

使用特权

评论回复
9
cemaj| | 2016-8-24 17:18 | 只看该作者
你的读写时序弄错了吧。

使用特权

评论回复
10
cemaj| | 2016-8-24 17:20 | 只看该作者
好像读的时候是高组态。

使用特权

评论回复
11
wangdezhi| | 2016-8-26 23:10 | 只看该作者
是不是引脚没有配置好?

使用特权

评论回复
12
wangdezhi| | 2016-8-26 23:11 | 只看该作者
感觉你的引脚设置都是在高上呢

使用特权

评论回复
13
Varus| | 2016-8-27 19:31 | 只看该作者
试试增大CPLD的频率

使用特权

评论回复
14
isseed| | 2016-8-29 22:21 | 只看该作者
看看你读取使能了吗

使用特权

评论回复
15
isseed| | 2016-8-29 22:21 | 只看该作者
CPLD能够IO是几伏电压?

使用特权

评论回复
16
yicunyu| | 2016-8-30 15:38 | 只看该作者
CPLD 50M足够了   qq956250037

使用特权

评论回复
17
hmf1235789|  楼主 | 2016-9-13 11:00 | 只看该作者
没有其他办法,软件设计时没有考虑好,只能把cpld的晶振换成30MHz的,然后在将xintf接口速度调慢一点,就可以了。

使用特权

评论回复
18
拉克丝| | 2016-9-15 21:45 | 只看该作者
没用过CPLD,有这么慢啊

使用特权

评论回复
19
angerbird| | 2016-9-16 11:56 | 只看该作者
这个主要注意数据包的协议的。

使用特权

评论回复
20
2287312853| | 2020-2-2 21:56 | 只看该作者
楼主,你好,我问下,你的这个CPLD的XREADY这个信号在CPLD里书怎么处理的,最后传给DSP的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

54

帖子

0

粉丝