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.

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的寄存器空间的,求大神指导。

求助,在线等回复。

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

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

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

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

     

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

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

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

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

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

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

  • 请仔细按照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之间的连接有问题。

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

  • 麻烦问一下,你们后续关于6657 SGMII和PHY问题解决了没有?我们也碰到同样的问题
  • 先不管这个状态嘛,死掉在这里哇???
    我可能是运气好,啥都没检查,配置完毕直接发,居然ok了。。。。surpise

    不过没有以太帧的crc自动生成;
    各位哥哥些有遇到吗?我看GBE首次说描述符info bit19的ps域为0会自动计算并添加crc,然并x呀,难道crc是pa生成的?裸跑我就加了个ibl的pa固件。
  • 请问,后续关于6657 SGMII和PHY问题解决了吗?我们也碰到同样的问题,请求技术支持,谢谢!
x 出现错误。请重试或与管理员联系。