攒了几天问题比较多,一起发上来了,麻烦专家耐心解答,谢谢~
1.c6472和c6678两个器件的srio外设除了个数上一个2个一个是4个不一样之外,有没有什么其他不同的地方,比如说硬件结构或者功能,操作方法是否一样。为什么两个开发板的SRIO示例程序差别很大,c6472的SDK中示例简单一些。在c6678上能不能用6472例程的那种操作方法。
2.两个芯片的例程都是自环测试。这种SRIO自环和SRIO和其他设备通信有何区别。。如果我想把例程改成与其他外围设备通信,需要修改哪些内容。只取消自环模式的值就可以么?
3.例程里面,对CPPI和QMSS的操作是什么意思,CPPI和QMSS的功能是什么
4.c6678的例程中使用的BIOS系统,程序量较大,移植到我的工程里也不方便,有没有更简单的示例工程,只包含基本的SRIO操作,方便移植到其他工程里。
初用该芯片,问题比较多,专家辛苦,劳烦尽量详细解答一下。
致礼!
haopeng han:
回复 Zhan Xiang:
Zhan Xiang
你好
请问附件中程序试过loopback_mode= SRIO_SERDES_LOOPBACK吗?
我这跑不通:www.deyisupport.com/…/5917.aspx
谢谢!
Zhan Xiang:
回复 haopeng han:
SERDES loopback的模式在有些EVM板上会有问题,你可以参考TI最新的勘误表,里面有关于SERDES loopback的描述。www.ti.com/…/sprz334d.pdf
zhen kong:
回复 Zhan Xiang:
我在运行上面例程时,程序跑到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然后程序就跑不动了一直停在这里,请问这是什么原因?
keji guo:
回复 zhen kong:
您好,我也遇到了和你一样的问题,试了ccsv5与论坛提供的例程都是在这个地方卡住了,我想问下你后来这个问题解决了吗,是如何解决,谢谢!
Andy Yin1:
回复 keji guo:
keji guo您好,
请问你是在EVM上测试么?如果在其他板子测试注意PLL的修改。
keji guo:
回复 Andy Yin1:
我就是在6678EVM上测试的,但是就是port-ok这个寄存器不能置位,所以每次初始化就失败了,所以很纠结啊,因为我需要外循环,需要把信号接出来处理,现在只能测试内循环,不知道该怎么解决这个问题,希望专家帮助解决,非常感谢!
haopeng han:
回复 keji guo:
keji guo
如果SRIO没接partner,用normal或externalloopback时port_ok肯定不能有效。
如果你在AMC金手指上引出SRIO信号,建议使用AMC socket,不然信号质量不好保证。
Andy Yin1:
回复 keji guo:
您好,
你是测试外循环模式出的问题?在EVM6678上只要一个DSP,只能测试DIGITAL_LOOPBACK and SERDES_LOOPBACK.
keji guo:
回复 haopeng han:
您好,我是这样做的,用AMC接出了SRIO信号,然后通过光纤转接到FPGA的SRIO口,我觉得这样的联接,FPGA应该也算是parten的吧,可是在上电之后FPGA端接收不到idle信号,这个因为DSP端联接的是port0,没有初始化成功,所以不能联接也可以理解,但是有个问题,在原理图上,标的是port1——port4,但是程序里显示应该是port0——port3,是不是原理图上的port1就是指的port0,因为我们现在还需要自己画板来转接信号,谢谢指导!