您好:
现在使用C6678EVM,想测试一下srio,RefClk为312.5MHz,想把srio rate配成1.25Gbps,在看SRIO_SERDES_CFGRX和SERDES_CFGTX_CNTL两个寄存器中的rate位都没有Eighth Rate,请问如何配成1.25Gbps,谢谢
Zhan Xiang:
这个是要通过配置SERDES PLL的MPY来确定的,首先通过PLL将SERDES PLL配置到你需要做分频的整数倍,如果是1.25G,你可以是SERDES PLL输出为2.5G,随后选择对应的rate来得到你想要的速率
sdz:
回复 Zhan Xiang:
我查rate为Eighth,但是SRIO_SERDES_CFGRX和SERDES_CFGTXn_CNTL的rete位没有eighth,只有full,half,quarter,请问应该怎样配置
Andy Yin1:
回复 sdz:
您好,
可以通过MPY来确定,但是要满足serDes输出时钟频率与data rate的整数倍关系,MPY=SerDes_output_pllFreq / SerDesInputRefClk; 如此时SerDesInputRefClk = 312.5MHz,则MPY可以配成4,此时SerDes_output_pllFreq = 1.25GHz,则相应的RATE配成1即可。
注:2011年10月份的SRIO手册感觉前后描述不是很清晰,正在确认。
Andy Yin1:
回复 sdz:
您好,
请共享一下你最终的详细测试配置及测试结果,非常感谢。
sdz:
回复 Andy Yin1:
我们是用DSP与fpga进行srio通讯,DSP这边是在SRIO_LoopbackDioIsrexampleproject上改的,配置如下:
CSL_BootCfgSetSRIOSERDESConfigPLL (0x221);
CSL_BootCfgSetSRIOSERDESRxConfig (0, 0x004404A5);
CSL_BootCfgSetSRIOSERDESRxConfig (1, 0x004404A5);
CSL_BootCfgSetSRIOSERDESRxConfig (2, 0x004404A5);
CSL_BootCfgSetSRIOSERDESRxConfig (3, 0x004404A5);
CSL_BootCfgSetSRIOSERDESTxConfig (0, 0x001807A5);
CSL_BootCfgSetSRIOSERDESTxConfig (1, 0x001807A5);
CSL_BootCfgSetSRIOSERDESTxConfig (2, 0x001807A5);
CSL_BootCfgSetSRIOSERDESTxConfig (3, 0x001807A5);
两边通讯正常,但是我想知道能否从寄存器中读出是否正确配置成1.25G,SP(n)_CTL2寄存器的BAUD_SEL可以么
Andy Yin1:
回复 sdz:
您好,
目前也有其他朋友问到如何读取当前的配置状态问题,我这边没有这样测试过,你可以测试反馈一下,有问题可以先查看一下是否有其他状态寄存器,然后再讨论,谢谢
dp:
回复 Andy Yin1:
如何查看当前配置?
keji guo:
回复 sdz:
SDZ您好,我是在做DSP和FPGA的通信,DSP端用的也是C6678EVM,开始用的是CCSv5自带的那个lookback例程,但是那个port打不开,不知道你遇到这样的问题没有?就是有个寄存器器位port-ok要置位,但是运行程序的时候这位就是不能够置位,很是纠结,专家也回答说要两个6678连起来才可以测试,但是我现在手边也没有硬件,看到你跟我做的一样的,所以我只好来请教请教经验了~我想问问你有没有遇到过port不能打开的问题?谢谢指导!
chenyi song1:
回复 keji guo:
试着回答一下,你应该是卡在device初始化了,选用哪个lane要根据你的硬件连接,你可以看一下evm板上用的是哪个lane,不用的打开并判断,我手头没有evm板,所以帮你看不了