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

[复制链接]
4556|19
 楼主| hmf1235789 发表于 2016-8-22 13:56 | 显示全部楼层 |阅读模式
DSP28335用XINTF访问CPLD区域0地址上的数据,其中DSP2833x_Xintf.c文件设置如下:
  1.     EALLOW;
  2. SysCtrlRegs.PCLKCR3.bit.XINTFENCLK = 1;        //开启XINTF时钟信号
  3. XintfRegs.XINTCNF2.bit.XTIMCLK = 1;        //基准时钟XTIMCLK = 1/2 SYSCLKOUT
  4. XintfRegs.XINTCNF2.bit.WRBUFF = 0;        //无写缓冲寄存器
  5. XintfRegs.XINTCNF2.bit.CLKOFF = 1;        //禁止XCLKOUT
  6. XintfRegs.XINTCNF2.bit.CLKMODE = 1;        //XCLKOUT=XTIMCLK/2

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

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

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

  19. 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速度不是快吗
gygp 发表于 2016-8-22 23:06 | 显示全部楼层
hmf1235789 发表于 2016-8-22 15:41
问题找到了,CPLD的时序太慢了大概需要0.3us,DSP的时序太快了大概0.013ns,请问怎么把XINTF的时序降下来? ...

CPLD可以系统时钟可以分频一下。
 楼主| hmf1235789 发表于 2016-8-23 09:14 | 显示全部楼层
zhangmangui 发表于 2016-8-22 22:43
CPLD不至于这么慢吧    增大CPLD的频率吧

cpld实际要快些,当还是与dsp不匹配,cpld中没有锁相环不能倍频,请问可以修改Verilog语言或将cpld晶振换高吗?
 楼主| hmf1235789 发表于 2016-8-23 09:16 | 显示全部楼层
gygp 发表于 2016-8-22 23:06
CPLD可以系统时钟可以分频一下。

dsp的xintf已经是系统时钟的二分频了,cpld里面没有锁相环,不能倍频,还是不能匹配
Rangar 发表于 2016-8-24 17:03 | 显示全部楼层
CPLD这么慢吗
cemaj 发表于 2016-8-24 17:18 | 显示全部楼层
你的读写时序弄错了吧。
cemaj 发表于 2016-8-24 17:20 | 显示全部楼层
好像读的时候是高组态。
wangdezhi 发表于 2016-8-26 23:10 | 显示全部楼层
是不是引脚没有配置好?
wangdezhi 发表于 2016-8-26 23:11 | 显示全部楼层
感觉你的引脚设置都是在高上呢
Varus 发表于 2016-8-27 19:31 | 显示全部楼层
试试增大CPLD的频率
isseed 发表于 2016-8-29 22:21 | 显示全部楼层
看看你读取使能了吗
isseed 发表于 2016-8-29 22:21 | 显示全部楼层
CPLD能够IO是几伏电压?
yicunyu 发表于 2016-8-30 15:38 | 显示全部楼层
CPLD 50M足够了   qq956250037
 楼主| hmf1235789 发表于 2016-9-13 11:00 | 显示全部楼层
没有其他办法,软件设计时没有考虑好,只能把cpld的晶振换成30MHz的,然后在将xintf接口速度调慢一点,就可以了。
拉克丝 发表于 2016-9-15 21:45 | 显示全部楼层
没用过CPLD,有这么慢啊
angerbird 发表于 2016-9-16 11:56 | 显示全部楼层
这个主要注意数据包的协议的。
2287312853 发表于 2020-2-2 21:56 | 显示全部楼层
楼主,你好,我问下,你的这个CPLD的XREADY这个信号在CPLD里书怎么处理的,最后传给DSP的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

54

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部