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

TMS320C6678与FPGA通过SRIO通信

你好:

最近在调试TMS320C6678的SRIO与FPGA通信,是通过论坛提供的KeyStone_SRIO的例程调试的,目前已分别实现4条lane的单lane的通信,速度是1.25G的,参考时钟为125MHz,但是还有以下问题,我想请教下:
1、调试有时候会卡在如下代码处:
/*———wait all enabled ports OK————-*/
for(i=0; i<SRIO_MAX_PORT_NUM; i++)
{
if(srio_cfg->blockEn.bLogic_Port_EN[i])
{
while(0==(srioRegs->RIO_SP[i].RIO_SP_ERR_STAT&
CSL_SRIO_RIO_SP_ERR_STAT_PORT_OK_MASK));
}
}
例如当i=0时卡住,此时srioRegs->RIO_SP[i].RIO_SP_ERR_STAT的值等于1,也就是说其他位都0,意味这个port初始化未成功或未初始化,很疑惑。这个问题,有时候会出现,有时候后不出现,当出现的时候断电重新上电几次,就可能通过,这个问题可能和硬件有关吗?还是其他什么原因?
2、我的FPGA与DSP的通信是通过fpga发doorbell给DSP触发中断来实现的,当前者发给doorbell后,后者收到doorbell触发中断,通过判断中断标志发起NREAD类型的通信,但是我发现进行多组通信时,初始化完成后,发起第一次通信的时间比较长,大约在3秒左右,我拼命,我没做过DSP对DSP的SRIO通信,感觉不太正常,难道首次通信必须这么长时间吗?请帮忙分析下原因。
3、论坛提供的KeyStone_SRIO的例程main函数开始对pll,ddr的初始化部分,在我自己做的板子上初始化感觉不大对劲,因为进行SRIO_DIGITAL_LOOPBACK模式下测试时,凡是涉及到DDR的数据校验就会出现错误。而将KeyStone_SRIO的例程main函数开始对pll,ddr的初始化部分注释,改用CCS5的debug界面下,scripts–evmc6678l init functions–global_default_setup进行初始化,则不会出现前面的错误i,这个初始化是根据.gel文件来的(这个GEL文件在msdk的一个叫gel的文件夹中),我现在想问下在.gel中其提供的一些初始化数据中:

标写EVM是对TMDX6678L开发板来说的,而对KeyStone_SRIO的例程如欲改得和CCS5的debug界面下,scripts–evmc6678l init functions–global_default_setup进行初始化效果一样是将代码:

else if(SHANNON==dspType)
{
//DSP core speed
//KeyStone_main_PLL_init (20, 1); //for 50MHz input clock
KeyStone_main_PLL_init (10, 1); //for 100MHz input clock

//DDR speed = 66.67*20/1= 1333
KeyStone_DDR_PLL_init (20, 1);

Shannon_EVM_DDR_Init(666.667); //for 1333Mbps

serdes_cfg.commonSetup.inputRefClock_MHz = 312.5;

改为:

else if(SHANNON==dspType)
{
//DSP core speed
//KeyStone_main_PLL_init (20, 1); //for 50MHz input clock
KeyStone_main_PLL_init (39,1); //for 100MHz input clock

//DDR speed = 66.67*20/1= 1333
KeyStone_DDR_PLL_init (20, 0);

Shannon_EVM_DDR_Init(666.667); //for 1333Mbps

serdes_cfg.commonSetup.inputRefClock_MHz = 312.5;

不知这样改动是否正确?而且还有什么地方需要改动?表中PA PLL VCO Rate是什么意思,是对应了我标红部分吗?

问题有点多,麻烦了!
谢谢!!
freshman:

你是跑自己做的板子还是6678的评估版?

lucky2:

您好,请问您调试dsp与FPGA的SRIO通信使用例子代码里的哪种loopback模式?谢谢

Mark:

你好,我也遇到和你一样的问题,只是我一直卡在那个循环上跳不出来,另外我做的板子DDR也是不能正确读写。想问以你下,如果DSP做从设备,是不是需要FPGA的SRIO初始化成功以后DSP在加载SRIO的驱动才行啊,我怀疑是我的FPGA一侧的SRIO没有运行起来,如果没有运行起来,是不是DSP的SRIO就不能初始化啊,谢谢!

赞(0)
未经允许不得转载:TI中文支持网 » TMS320C6678与FPGA通过SRIO通信
分享到: 更多 (0)