问题1
在使用CPLD进行写HPI操作时发现,偶尔会使得DSP的RAM数据区内被写入数据00003E66,有时候是连续出现在RAM中,有时候会隔几个00000000周期出现。请问这是什么操作导致的?
问题2
请问C6713B的HPI接口在工作过程中有没有哪种错误模式会导致HPI读写功能完全失效?
系统采用的是CPLD+DSP的设计方案,CPLD作为host,通过HPI对DSP的RAM进行读写。按照一定周期进行循环工作,采取先读后写的方式,然而在上电的时候有几率(大约70-80次出现一次)出现输出数据异常的情况,这个时候通过CCS对DSP的指定RAM数据区进行观察,没有任何数据写入更新,读出的数据与特定RAM数据区的数据也不一样,初步判断时HPI功能已经失效,(至少)无法完成对指定地址数据的读写操作,需要再次上电重启或在连接CCS的情况下使用CCS对DSP进行复位才能恢复。
分析推测产生的原因是上电最初的一个周期时间长度不稳定,短于正常的周期,使其在HPI的读写操作过程被打断,CPLD提前进行了复位并开始下一个周期的循环。
Shine:
异常时,测量一下HPI时序。
另外,检查一下DSP的供电电压,reset信号和时钟是否都稳定干净。
qiang ma:
回复 Shine:
异常时DSP还是能够正常工作的,这是在连接CCS在线调试时发现的。供电电压应该没问题,因为直流电源的输出电压电流没有变化,reset信号是由CPLD产生的,应该干净,至于时钟没测过。
您说的HPI时序是指什么?HPI的时序是由CPLD写的状态机控制的啊。
Shine:
回复 qiang ma:
HPI的读写时序在数据手册第129页开始。
www.ti.com/…/tms320c6713b.pdf
qiang ma:
回复 Shine:
我是按照这个时序做的,除了写HPI时没有判读HRDY信号,是依靠足够的延时保证的,剩下一模一样。