发 帖  
原厂入驻New

[经验] FPGA+DSP之SRIO通信之DSP端参数设置

2020-9-8 10:36:41  84 FPGA DSP
分享
0
DSP端参数设置使用的官方例程路径:


ti\pdk_C6678_1_1_2_5\packages\ti\transport\ipc\examples\srioIPCBenchmark\device_srio.c


port mode(port模式)
SRIO通道有自回环(loopback)模式和普通模式(Normal),要使用SRIO实现FPGA和DSP的通信,必须将各port调至Normal模式,即:


    /* Configure SRIO to operate in loopback mode.(原始例程代码)*/
  //  CSL_SRIO_SetLoopbackMode(hSrio,0);
  //  CSL_SRIO_SetLoopbackMode(hSrio,1);
  //  CSL_SRIO_SetLoopbackMode(hSrio,2);
  //  CSL_SRIO_SetLoopbackMode(hSrio,3);


    /* Configure SRIO to operate in normal mode.(修改后例程代码) */
    CSL_SRIO_SetNormalMode(hSrio,0);
    CSL_SRIO_SetNormalMode(hSrio,1);
    CSL_SRIO_SetNormalMode(hSrio,2);
    CSL_SRIO_SetNormalMode(hSrio,3);
不懂的函数可以去路径:


D:\ti\pdk_C6678_1_1_2_5\packages\ti\csl\docs\doxygen\html\csl__srio_aux_8h.html
查看相关函数定义和功能


链接速率配置(link rate)
    /* Assuming the ref_clock of 312.5 MHz and link rate is 3.125Gbps; program the PLL accordingly. */


    CSL_BootCfgSetSRIOserdesConfigPLL (0x229);


该语句是对link rate的配置,假设参考时钟是312.5MHz(对于不同的C66x系列DSP,其参考时钟是不同的,所以该配置因板子型号而异),而你想要配置的link rate是3.125Gbps,那么就可以使用0x229作为该函数的参数,如果需要配置为其他link rate,就需要改变该函数参数。该函数参数的设定依据是:
213147i1sg44mtmc122ght.png.thumb.png
首先,该函数就是对SRIO_SERDES_CFGPLL寄存器做配置,而该寄存器最重要的,就是上图所示的0-9bit。其中,ENPLL是对PLL(锁相环)的使能,该位必须置1;MPY是选择PLL的倍频倍数,拿图中的8.25x为例,其对SRIO_SERDES_CFGPLL的1-8位写001000 01,高六位是整数部分,001000b是十进制的8,低两位是小数部分,01b是小数0.25;至于VRANGE,写1就行,如果想了解可以自行谷歌。


而0x229的1-8Bit为:000101 00b,整数部分是5。那有人就会问了,你说参考时钟是312.5MHz,现在锁相环的倍频5倍,倍频出来的时钟频率不是3.125G啊?


不要着急,最终的link rate不只有锁相环决定,真正起传输作用的是RX和TX,所以对他们的配置也影响link rate,RX和TX的配置我后面会讲到,RX和TX的配置寄存器中有个域叫RATE,就是配置每个锁相环时钟采样几个数据。


TX和RX的RATE域描述如下图所示:
213210rznjnc4j4rbtwqhw.png.thumb.png
然后然后!!我们看一下下面这张表,就明白了:
213226yqp998kznokqwiup.png.thumb.png
很明显我们在配置RX和TX时将RATE配成了Half,也就是一个PLL时钟采样2个数据,这样数据率不就变成了3.125G吗!


所以,在对link rate进行配置时,需要考虑的只有RX和TX的Rate域和PLL的MPY域。


RX和TX的配置
接下来就到了我们通道配置的重头戏,传输器和接收器的配置,RX负责接收数据,TX负责传输数据,对RX和TX不太了解的可以看我之前的博客。大概了解即可。首先来看一下例程中这部分的写法:


   /* Configure the SRIO SERDES Receive Configuration. */
    /* loopback mode */
  // CSL_BootCfgSetSRIOSERDESRxConfig (0, 0x01C40495);
//  CSL_BootCfgSetSRIOSERDESRxConfig (1, 0x01C40495);
//  CSL_BootCfgSetSRIOSERDESRxConfig (2, 0x01C40495);
//  CSL_BootCfgSetSRIOSERDESRxConfig (3, 0x01C40495);


    /* Non-loopback */
    CSL_BootCfgSetSRIOSERDESRxConfig (0, 0x00440495);
    CSL_BootCfgSetSRIOSERDESRxConfig (1, 0x00440495);
    CSL_BootCfgSetSRIOSERDESRxConfig (2, 0x00440495);
    CSL_BootCfgSetSRIOSERDESRxConfig (3, 0x00440495);


    /* Configure the SRIO SERDES Transmit Configuration. */
    /* loopback mode */
// CSL_BootCfgSetSRIOSERDESTxConfig (0, 0x00780795);
//  CSL_BootCfgSetSRIOSERDESTxConfig (1, 0x00780795);
//  CSL_BootCfgSetSRIOSERDESTxConfig (2, 0x00780795);
//  CSL_BootCfgSetSRIOSERDESTxConfig (3, 0x00780795);


    /* Non-loopback */
    CSL_BootCfgSetSRIOSERDESTxConfig (0, 0x00180795);
    CSL_BootCfgSetSRIOSERDESTxConfig (1, 0x00180795);
    CSL_BootCfgSetSRIOSERDESTxConfig (2, 0x00180795);
    CSL_BootCfgSetSRIOSERDESTxConfig (3, 0x00180795);
这两个函数的功能就是对RX和TX进行配置,具体写入的寄存器是:SRIO_SERDES_CFGRX[0-3]和SRIO_SERDES_CFGTX[0-3]。由于我们使用的是Normal模式,所以对loopback模式下的RX和TX配置不作解释。我把这部分分为两块来讲。


RX配置
对SRIO_SERDES_CFGRX的写入值为0x00440495。我们一步一步讲:
先看0-3bit:
213319gpucun7c1vvu758b.png.thumb.png
最低位是RX使能位,所以不管你要怎样花式配置RX,3-0bit必须是0101b。
第4-5bit的rate域已经在上文说过了。
213336l5t7iiliii1tiici.png.thumb.png

第6bit是极性转换域,确定高电平使能和低电平使能。没有什么特殊要求置0即可。
213445x3a7ffa0aguafr7d.png.thumb.png

第7-9bit只能是001b,想详细了解可以自行查阅相关资料。
213503r5p9hrwxxy191xe8.png.thumb.png

第10-11bit是对齐设置域,一般设置为01b即可,需要特殊的对齐设置时可以对该域进行修改。
213528vn7wmdkcsc5cyps7.png.thumb.png

第12-14bit是丢失信号检测域,一般设置为000b。设置为001b,适用于infiniband通信,设置为100b,适用于PCIE和S-SATA通信。


第15-17bit是时钟/数据恢复算法设置,初级配置中用处不大。设置为000即可。


第18-20bit是均衡器配置,一般设置为001即可。


第21bit是均衡器使能位,默认为使能,即将该位设置为0.


第22bit是漂移补偿使能位,一般要设置为1。


第23-24bit是loopback使能位,设置为00,即关闭loopback模式。


不知道大家发现没有,除了rate位,几乎所有的域都是固定配置的,所以大家在配置RX时只需要修改rate位,其余位与0x00440495保持相同即可。

213425xeol5swauwkeoaoz.png.thumb.png

相关经验

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发经验
关闭

站长推荐 上一条 /8 下一条

快速回复 返回顶部 返回列表