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.

DP83867通过sgmii千兆速率传输不通问题

我们使用Broadcom的交换芯片(仅可使用固定千兆速率的sgmii协议)与DP83867通过4线的sgmii连接,DP83867外接RJ45引出。原理图参考评估板,可以从交换芯片侧看到该链路up上了,但是从DP83867这边的网口无法与交换芯片进行交互,已确认交换芯片工作正常。dp83867的寄存器信息如下:

地址  数据

0x01  7949

0x02  2000

0x03  A231

0x04  01E1

0x05  0000

0x06  0064

0x07  2001

0x08  0000

0x09  1300

0x0f  3000

0x10  5C48

0x11  A802

0x12  0000

0x13  0044

0x14  29C7

想问下这可能是什么原因,是我们对寄存器地址的配置有问题吗?

  • 0x00的数据是0140
  • 您好,交换芯片正常工作,link建立,那还可以通过MII loopback test来验证PHY和 Broadcom的接口是否都正常呢。
    正如我在这个帖子中的回复:e2echina.ti.com/.../187296
  • 您好,loopback的测试我们今天做一下,我发现我们有个问题,就是虽然我们取消了AN模式设置了sgmii协议强制1000M速率,看寄存器值也是正确的,BMCR寄存器(地址0x0000)的值为0140,CFG2寄存器(地址0x0014)的值为写为2947,但是在读phy状态的时候只显示phy工作在10M的速率,是还有其他设置sgmii协议固定千兆速率的寄存器吗?

  • 您好,我们使用的broadcom的switch芯片无法对phy芯片进行loopback测试,之前在调试switch芯片通过sgmii协议与处理器的mac层连接时,最初也不通,但是switch有链路up的状态,后来将处理器那边的AN自协商功能关掉,速率配置为固定的1000M就通了,猜测与dp83867不通是否也可能是这个原因,不知道我们对相关寄存器的配置(固定千兆速率,sgmii协议,无自协商)是否有问题?
  • 您好,我们感觉现在主要的问题是phy的速率一直配不上千兆,把BMCR寄存器(地址0x0000)的值配置为0140后,查看phy的状态仅能显示速率为10M,将该寄存器值改为2140再看phy状态速率能到100M。CFG2寄存器(地址0x0014)的值配为0x2947,sgmii AN 也已经disable了。
  • 您好,我们今天又做了测试,发现把AN打开后即0x0000寄存器配为0140,把phy引出的RJ45接到千兆交换机上时phy以及交换机网口上的LED都处于正常绿灯闪烁,应该说明从千兆交换机侧看link已经建立了。当前应用环境如下:switch(仅支持固定千兆sgmii协议)——>phy——>RJ45——>千兆交换机。还是怀疑switch——>phy这边有问题,dp83867是否支持四线的sgmii固定千兆速率呢?目前看寄存器0x13的值为0044,说明是有xGMII相关错误的。

  • 您好,DP83867datasheet中SGMII timing中的参数就是工作在1000Base-T的条件下测试的。
    在这个应用环境中,LAN switch 应该是放在PHY和RJ45之间的吧,您放在PHY前端是切换的什么信号?
  • phy前面的switch芯片是sgmii协议的mac层,从mac层出来sgmii in/out是通过4线的方式接到dp83867上的,这条链路一直不通。
  • 您好,您看下是否是寄存器0X0009的配置问题。 首先1000Base-T我们使能自动协商。 datasheet中有描述:

    All 1000BASE-T PHYs are required to support Auto-Negotiation.

    其次就是master 和slave的选择,在自动协商的第二个要素Auto-Negotiation of Master or Slave Resolution中,其中8.4.3.2部分的介绍是这样的:

    If 1000BASE-T mode is selected during the priority resolution, the second goal of Auto-Negotiation is to resolve Master or Slave configuration. The Master mode priority is given to the device that supports multiport nodes, such as switches and repeaters. Single node devices such as DTE or NIC card takes lower Master mode priority.

    也就是说我们需要将switch配置为master,把PHY配置为slave。通过寄存器0X0009进行配置,看是否能解决您的问题?

  • 您好,我们把phy配为slave模式也还是同样的情况,把phy配成sgmii模式的话,可以固定phy的速率吗,因为mac层的sgmii是千兆的。或者使用phy的sgmii模式还有其他需要配置phy的选项吗?类似是否使能AN这样的配置?

  • 您好,DP83867是支持4线或6线的SGMII mode的。 关于您的这个问题,我这边帮您再看下。

  • 好的,麻烦您了,我们目前这个问题还没有解决。

  • 您好,我的DP83867和您的用法一样,也是连接的switch SGMII,但是传输速率在100M的情况下,83867不能link上,读取寄存器PHYSTS,地址0x0011是,LINK_STATUS一直处于link down的状态,请问您都操作了那几个寄存器?
  • 我们现在问题也还没有解决,改速率的话是在BMCR寄存器改的,将第13位改为1后,查看phy状态就显示是百兆的,不过感觉好像用处不大,您可以试一下,有问题可以一起交流。
  • 100M速率这个我知道怎么修改,现在是PHY跟switch不能link up上,对这个问题,您那边有什么好的建议吗
  • 您好,是不是SGMII 没有enable?使用strap pin enable 或者通过寄存器配置也可以。参考datasheet 

    8.4.1 MAC Interfaces的介绍,如果不使用strap pin 来enable  SGMII的话,就按照Table 2的寄存器配置enable RGMII mode。

  • 您好,SGMII肯定是enable的,在帖子的寄存器表中,我们地址0x10寄存器的值是0x5848,bit11位为1。而且从switch芯片侧的串口打印能够看到这条链路up上了,但是phy这边一直up不上。

  • 我怀疑主要的问题主要原因还是需要phy这边的SGMII协议设为固定速率千兆,我在把phy这边的SGMII_AN(CFG2寄存器的bit7置0)关闭以后,switch芯片的这条链路就up不上了,up不上的原因可能是phy这边sgmii协议的速率不对,不是千兆的。
  • 您好,目前0x0037, 0x006E和 0x006F 这几个寄存器的值读出来是多少?。
    另外,目前配置的是自动协商1000Mbps速率,还是将自动协商disable掉,使用force speed 方式,从而得知工作在10Mbps? 是否配置的0X0010 force link good?
    另外,把您strap pin的配置发上来也看下。
  • 我也是phy和switch不能连接上,我们switch是固定千兆速率的,之前我们switch跟处理器up不上是只要把处理器的AN关掉就行了。
  • 您好,0x0037的值为0x0040,0x006F的值为0x3000,0x006E的值为0x0000(0x006F和0x006E不知道为什么读出来的是这个数,从mii总线上是可以看到phy地址是0x03的)。目前配置的是自动协商的1000Mbps速率,没有使用force speed,目前0x0010地址的数据是0x5848,0x0000的数据是0x1170此时phy是工作在10Mbps。之前disable掉AN功能:0x0010地址的数据改为0x5c48,0x0000的数据改为0x0170,phy也是工作在10Mbps。
  • 这是我们的STRAP PIN

  • 您好,我的switch和PHY 83867接口是SGMII,通过Digital Loopback测试switch->PHY是通的,可以link up检测link status也置1,但是关闭loopback后,一直link不上,初步问题可能出在PHY->RJ45->PC机,想问您一下PHY->RJ45->PC机,需要去操作哪几个寄存器?

  • 您好,我们也是switch-phy-RJ45-PC/商用交换机,您有把phy的三个LED灯接出来吗?这三个灯应该是10M亮一个,100M亮两个,1000M亮三个。我们现在是打开phy的AN功能后,phy的三个灯可以根据接入的速率自行调整,switch侧能看到与phy连接的链路up上了,但是也是不通。我觉得你们可以尝试操作下phy的AN功能寄存器。

  • 您好,我们只接出来LED_1和LED_2,LED_1代表100M通的指示灯,LED_2是数据传输的指示灯,打开PHY的AN后,LED_1并没有亮,也link不上。switch和PHY的digital loopback 是通的,代表switch和PHY的接口SGMII没问题,您的83867到RJ45到电脑网卡是连上网线就能用吗?有没有其他操作?我的电脑连上网线都没有以太网的显示,您那边遇到过这种问题?

  • 您好我们也遇到了同样的问题,我们读取0X0009寄存器的值1140(PHY已经设置成了slave)。这个问题官方有解决办法吗?
  • 你们那边这个问题解决了吗?我们也有这个问题。
  • 我们放弃了。。。重做了一版,不用phy了。