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

2019-07-20 17:45发布

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时序中的建立、有效、跟踪时间的哪一个?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
18条回答
gygp
2019-07-21 08:29
hmf1235789 发表于 2016-8-22 15:41
问题找到了,CPLD的时序太慢了大概需要0.3us,DSP的时序太快了大概0.013ns,请问怎么把XINTF的时序降下来? ...

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

一周热门 更多>