我在做fpga与dsp的SRIO通信,我用的是论坛上提供的SRIO test程序,目前dsp端能够实现端口0的外部回环测试。fpga端的协议还没做通,我想用dsp直接给fpga发包,fpga根据收到的包解析协议。遇到的问题是:
(1)我用两个dsp测试的那个程序,让dsp发包给fpga,但是dsp端口一直打不开。这是什么原因啊?
(2)我在外部回环测试的时候端口是能够打开的,为什么连接到fpga就打不开了?在打开端口的时候需要fpga进行什么配置吗?
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.
我在做fpga与dsp的SRIO通信,我用的是论坛上提供的SRIO test程序,目前dsp端能够实现端口0的外部回环测试。fpga端的协议还没做通,我想用dsp直接给fpga发包,fpga根据收到的包解析协议。遇到的问题是:
(1)我用两个dsp测试的那个程序,让dsp发包给fpga,但是dsp端口一直打不开。这是什么原因啊?
(2)我在外部回环测试的时候端口是能够打开的,为什么连接到fpga就打不开了?在打开端口的时候需要fpga进行什么配置吗?
1)请在保证眼图正常的情况下,检查DSP的port配置,速率配置,同时也请检查下FPGA侧的相应配置
2)FPGA侧需要做相应的端口,速率配置,建议仔细阅读使用手册
现在已经能够和fpga连接了,之前主要是对SRIO物理层协议没有完全搞清楚,fpga端一直没能发正确的maintaince包和连接请求,导致DSP端的端口一直处在initialization状态。
Bruce Yang你好,我外部回环测试是在一个DSP上做的,把TX 和RX用SMA—SMA线短接。
leeen你好,请教你一下端口打不开的问题:
我按照你说的把端口0的TXn、Txp分别和RXn、RXp用sma线短接
用的KeyStone_SRIO程序,程序中修改了以下几点:
1.
SRIO_1x2x4x_Path_Control external_path[]=
{
SRIO_PATH_CTL_1xLaneA
// SRIO_PATH_CTL_1xLaneA_1xLaneB_1xLaneC_1xLaneD,
// SRIO_PATH_CTL_2xLaneAB_2xLaneCD
};//只用Lane1
2.
SRIO_Loopback_Mode loopback_mode= SRIO_EXTERNAL_LINE_LOOPBACK;
3.
srio_signle_port_external_line_loopback_test()中,将
// srio_cfg.blockEn.bLogic_Port_EN[0]= FALSE;
// srio_cfg.blockEn.bLogic_Port_EN[1]= FALSE;
注释
但是while(0==(srioRegs->RIO_SP[i].RIO_SP_ERR_STAT&
CSL_SRIO_RIO_SP_ERR_STAT_PORT_OK_MASK));端口还是打不开?
请问还需要修改哪些地方,这几天搞得这个比较头大,帮帮忙谢谢!!!
Bruce Yang 你好,
(1)我就是在SRIO_PATH_CTL_1xLaneA_1xLaneB_1xLaneC_1xLaneD模式下做的端口0外部回环。srio_cfg.blockEn.bLogic_Port_EN[0]= TRUE;其他三个都是FALSE。
(2)检查一下你的接口连接是不是用的你打开的那个端口,TXp,TXn,RXp,RXn接没接正确。
(3)你的SMA—SMA连接线是不是满足查分信号要求。
(4)你是不是在6678开发板上做的还是自己的板子啊???如果是自己的板子你看看你的SRIO输入参考时钟是吧是与板子上设置的不一致。
leeen你好,十分感谢你的回复
我用的是6678le开发板,我感觉好像是我的SMA同轴电缆的问题,我使用的是安捷伦频谱分析仪上的同轴电缆,每根线大概有四五十cm长,我后来试了下偶尔能打开端口,但是校验数据时候不对。
[C66xx_0] SRIO link speed is 1.250Gbps
[C66xx_0] SRIO path configuration 1xLaneA_1xLaneB_1xLaneC_1xLaneD
[C66xx_0] SWRITE from 0x10802200 to 0x10806200, 8 bytes, 4179 cycles, 15 Mbps, completion code = 0
[C66xx_0] data mismatch at unit 0, 0x1 (at 0x10802200) != 0xffffffff (at 0x10806200)
[C66xx_0] SWRITE from 0x10802200 to 0x10806200, 16 bytes, 4183 cycles, 30 Mbps, completion code = 0
[C66xx_0] data mismatch at unit 0, 0x2 (at 0x10802200) != 0xffffffff (at 0x10806200)
[C66xx_0] SWRITE from 0x10802200 to 0x10806200, 32 bytes, 4462 cycles, 57 Mbps, completion code = 0
[C66xx_0] data mismatch at unit 0, 0x3 (at 0x10802200) != 0xffffffff (at 0x10806200)
[C66xx_0] SWRITE from 0x10802200 to 0x10806200, 64 bytes, 4754 cycles, 107 Mbps, completion code = 0
[C66xx_0] data mismatch at unit 0, 0x4 (at 0x10802200) != 0xffffffff (at 0x10806200)
[C66xx_0] SWRITE from 0x10802200 to 0x10806200, 128 bytes, 5114 cycles, 200 Mbps, completion code = 0
[C66xx_0] data mismatch at unit 0, 0x5 (at 0x10802200) != 0xffffffff (at 0x10806200)
有专用的适合差分传输的SMA线吗?
你单独测试下Message passing看看可以吗?我的同轴线就是在淘宝上买的,长度跟你的差不多。
leeen 你好,我现在在做用srio实现DSP与FPGA通信,也用两个DSP测试的程序,但是dsp端口一直打不开,请问dsp和FPGA配置上有哪些需要注意的?需要检查哪些问题?谢谢!