TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320C6657 EMAC SGMII与PHY芯片之间的通信问题

我们仿照EVM6657开发板自己做了一块板子,在调试网络通信时发现程序卡在循环读取SGMII_REGS->STATUS 这个地方了,读取此寄存器,返回值是0x30,表示网络自动协商没有完成,没有LINK UP,但是观察RJ45的LED灯,都是点亮的,通过MDIO读取PHY芯片的寄存器也都正常,观察MDIO的状态寄存器,也表征自动协商完成,并且已经ink up,为什么SGMII的状态寄存器一直不对呢?

对比了一下开发板的MDIO寄存器和PHY芯片的寄存器状态,是和我的板子一致的,只有SGMII的状态不一致,我自己定义了一组UDP协议的数据包,绕过死循环读取SGMII_REGS->STATUS这个地方,直接发送UDP数据包 ,开发板是可以正常发送数据包的,并且我的网络助手也抓到了UDP数据包,但是自己的板子发送并不成功,是不是表明我的SGMII数据通路不通?还有就是网络的状态是通过什么方式反应到SGMII的寄存器空间的,求大神指导。

求助,在线等回复。

zhang zhangyu:

补充一下,测试程序都是CCS下的官方例程,EMACBenchmark_exampleProject

Marvin Liang:

SGMII link up状态表明了,SGMII 和PHY之间的状态,如果你想其表示网络端状态(PHY Fiber side),则需要配置PHY的寄存器来实现,一般我们不建议这样做。就你的问题而言:

1.你用的PHY是否与TI EVM板的一样?如果不一样,是否需要特别的配置?

2. TI芯片SGMII Serdes配置有没有按照你的板子实际情况更新?如果Serdes时钟是否和TI EVM一致 呢?

 

zhang zhangyu:

回复 Marvin Liang:

多谢你的积极回答,我的PHY芯片和TI EVM一致的,Serdes时钟也是 和EVM一致。

SGMII Serdes配置需要更新什么配置呢,差分电平的偏置还是 什么,这些配置和开发板不能保持一致吗?

zhang zhangyu:

回复 Marvin Liang:

补充一下,SGMIISTATUS寄存器的link up状态对我很重要,我使用NDK的底层网口驱动,link up状态不对,程序会一直死循环执行不下去。

zhang zhangyu:

回复 Marvin Liang:

观察了一下SGMII信号的眼图,抖动和电压偏置都是符合芯片要求的电气特性的,难道是时钟精度不够,或者是在硬件设计上Serdes有什么配置模式忽略了,没有和EVM一致?

yue sun1:

回复 zhang zhangyu:

我现在也是这个问题,技术支持一直没有回复,你们弄好了么?怎么解决呢? 

zhang zhangyu:

回复 yue sun1:

还没好,我的测试到 serdes 的loopback 模式,link up 是对的,带上PHY就不行了

Marvin Liang:

回复 zhang zhangyu:

请仔细按照TI的文档检查该接口有否按TI建议进行硬件设计:

http://www.ti.com/lit/an/sprabc1/sprabc1.pdf

http://www.ti.com/lit/an/sprabi2c/sprabi2c.pdf

PHY也有可以设置环回模式,建议你通过MDIO配置PHY外环(也就是通过RJ45进入的包,通过RJ45环回去),在该模式下,外面的PC或者仪器能否收到包呢?

如果不行,则是PHY的配置问题。如果可以,再建议做一个简单的RJ45环回头(网上有教程),插到RJ45上,内环。也就是DSP发出的包是否可以通过RJ45环回头环回到DSP?因为你已经做过SGMII环回是OK的,如果内环有问题则证明DSP到PHY之间的连接有问题。

zhang zhangyu:

回复 Marvin Liang:

多谢你的积极回答,我测了一下PHY 外环是正确的,内环有问题,还是SGMII到PHY之间的问题,看看是不是信号层的问题

user1558339:

回复 zhang zhangyu:

麻烦问一下,你们后续关于6657 SGMII和PHY问题解决了没有?我们也碰到同样的问题

赞(0)
未经允许不得转载:TI中文支持网 » TMS320C6657 EMAC SGMII与PHY芯片之间的通信问题
分享到: 更多 (0)