你好,我们现在在测试C6678与FPGA之间的RapidIO通信,FPGA端通过IP核向DSP发送或接收数据,请问有没有简单的C6678 DSP程序可以向FPGA端发送和接收来自FPGA的数据?
之前看过你们提供的KeyStone_SRIO这个测试程序,试着将DSP设置成slave看能否接收FPGA端发送的数据,但显示无link,FPGA端用signaltap采集数据显示没有数据?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你好,我们现在在测试C6678与FPGA之间的RapidIO通信,FPGA端通过IP核向DSP发送或接收数据,请问有没有简单的C6678 DSP程序可以向FPGA端发送和接收来自FPGA的数据?
之前看过你们提供的KeyStone_SRIO这个测试程序,试着将DSP设置成slave看能否接收FPGA端发送的数据,但显示无link,FPGA端用signaltap采集数据显示没有数据?
1. 确认DSP没有工作在loopback模式
2. 确认FPGA和DSP工作在同样的模式1x/2x/4x和速率
3. 当DSP初始化完成后,查看SP_ERR_STATUS寄存器,看port ok bit 是否被置位,如果没有被置位,查看是否有其他错误状态
谢谢您的答复,现在运行程序,dsp初始化时程序跑到Keystone_SRIO_Init(SRIO_Config * srio_cfg)中的
/*---------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));
}
}
执行for循环时,i=0然后程序就跑不动了一直停在这里,应该是您在上面所说的第三个原因,请问该如何解决这个问题?谢谢
1.如果是和FPGA通信,FPGA端应该可以看到底层的状态,当前初始化到什么阶段,收到了什么control symbol,是不是有物理层错误。
2. 检查DSP CVDD,看看是不是满足datasheet的要求。
您好,SRIO速率是由SERDES PLL的MPY来配置的,但对这一块不大了解,在程序中Keystone_Serdes_init.c源程序中有对MPY的配置,比如说如果参考时钟为156.25Mhz如何修改才能产生rate为3.125Gbps?谢谢,因为刚学DSP很多地方都不懂,希望能详细解答一下。
楼上可知网易微博有个叫dp的牛人?3月份就跑通两片c6678的SRIO了。