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.

[参考译文] DP83849I:PHY0断电-原理图审阅

Guru**** 1630180 points
Other Parts Discussed in Thread: DP83848C, DP83849I
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1299303/dp83849i-phy0-power-down---schematic-review

器件型号:DP83849I
主题中讨论的其他器件:DP83848C

您好!

   我将 在设计中使用 DP83849IVSX/NOPB 器件。  

以太网交换机(SJA1105QELY)和处理器(i.mX6SOLO)连接到 LAN 的 MII (介质独立接口)。

SJA1105P/Q/R/S 是一款5端口汽车以太网交换机、通过 SPI 进行配置。

A 双端口 使用与以太网交换机连接的以太网 PHY (DP83849IVSX/NOPB)。

在进行以太网测试时、我们将关闭 phy0电源。 以下是使用 MDIO 工具读取 PHY 寄存器的日志。

$ MDIO

$ MDIO 2188000.Ethernet-1 phy 0原始0x0

0x3900

$ MDIO 2188000.Ethernet-1 phy 1原始0x0

0x3100

对于正确的操作内容应为 0x3100、但对于 Phy0 、我们获取0x3900。

能否检查原理图是否正确无误? 另外、您是否可以提供有关如何解决问题的提示。

在原理图中、MDIO 引脚具有1.5k 的上拉电阻器。 我们是否需要在任何其他引脚上连接上拉电阻器? 请检查。

e2e.ti.com/.../ethernet-section-schematic.pdf

此致、

比特什

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Bitesh:

    我想在对您当前问题的理解基础上确认一下、您是说 DP83849PHY 当前处于正常运行状态、但在断电模式下读取寄存器0x0000。 如果是、如何确定 DP83849PHY 处于断电模式? 看到寄存器0x0000读数为3900时、是否看到链路接通?

    关于上拉引脚、如果您要将 DP83849配置为不同的自举模式。 根据您的运行模式、可能需要上拉电阻器。

    --

    谢谢!

    林希尔曼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

      它是双端口 PHY。 如果您参考原理图、我们已将物理地址0指定为端口 A、并  将物理地址1指定为端口 B。

    现在、当我们读取数据表中的表5-16时、我们将得到 PHY 0 (端口 A)和 PHY 1 (端口 B)的不同值。

    对于 PHY 0、它是0x3900。 如果我将0x3900转换为二进制、则位11为"1"、表示断电。

      

    但是、对于地址00h 的 PHY 1内容是0x3100、其中位11为0。  

    因此我们无法了解 Phy0为何处于断电模式。

    两个端口的链路均已断开。 我们怀疑由于 Phy0处于断电状态、它使 PHY 1的链路也处于断电状态。

    您能否验证我们的原理图是否正确以及硬件三中是否没有错误?

    此外,如果你可以建议什么,我们可以尝试解决这个问题?

    此致、

    比特什  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Bitesh:

    感谢您提供最新的详细信息。 如果您对断电模式的 PHY0进行编程、是否能够建立链路?

    如果可能、您是否还可以探测以下引脚以查看在上电期间这两个引脚中是否发生任何触发事件?

    --

    谢谢!

    林希尔曼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

       POWERDOWN_INTA 和 POWERDOWN_INTB 两个引脚均为3.3V。 上电后、我收到以下日志

    $ MDIO 2188000.Ethernet-1 phy 0原始0x0

    0x3900

    $ MDIO 2188000.Ethernet-1 phy 1原始0x0

    0x3100

    $ MDIO 2188000.Ethernet-1 phy 0原始0x10

    0x0000

    $ MDIO 2188000.Ethernet-1 phy 1原始0x10

    0x4000

    在我使用以下命令将 PHY 0中的位11强制为0后  

    $ MDIO 2188000.Ethernet-1 phy 0原始0x0 0x3100/0x3100

    在强制将 PHY 0的位11设为0后、我将获得以下日志:

    $ MDIO 2188000.Ethernet-1 phy 0原始0x0

    0x3100

    $ MDIO 2188000.Ethernet-1 phy 1原始0x0

    0x3100

    $ MDIO 2188000.Ethernet-1 phy 0原始0x10

    0x4000

    $ MDIO 2188000.Ethernet-1 phy 1原始0x10

    0x4177

    正如您在上面的日志中所看到的、0x4177表示链路位针对 PHY 1、但针对 PHY 0则未建立

    您能帮助使 PHY 0也启动吗?  

    我的系统详情如下-

    我们使用的是 Linux LTS-v6.1.58
    phy 驱动程序:drivers/net/phy/dp83848.c
    开关驱动器:drivers/net/dss/sja1105/sja1105_main.c
    DTS: https://gist.github.com/openedev/c3138fdbf62a08c1d2772153320badca

    在自定义电路板中、我会在启动后看到以下日志、  

    [ 25.988767] sja1105 spi1.0:为固定/mii 链路模式配置
    [25.988767] sja1105 spi1.0:链路接通- 100Mbps/全-流控关闭
    [ 26.077023] sja1105 spi1.0 ethphy0 (未初始化):PHY [2188000.Ethernet-1:00]驱动程序[TI DP83848C 10/100Mbps PHY](IRQ=POLL)
    [26.236560] sja1105 spi1.0 ethphy1 (未初始化):PHY [2188000.Ethernet-1:01]驱动程序[TI DP83848C 10/100Mbps PHY](IRQ=POLL)
    [26.328395] 设备 eth0已进入混杂模式
    [26.346597] DSA:树0设置
    [ 27.833315]蓝牙:BNEP (以太网仿真) 1.3版
    [ 27.876500]蓝牙:初始化 BNEP 套接字层
    [ 27.948185]通用 PHY 固定-0:00:连接的 PHY 驱动器(MII_BUS:phy_addr=fixed-0:00、IRQ=poll)
    [ 27.998415] FEC 2188000.Ethernet eth0:链路接通- 100Mbps/全-流量控制关闭
    [ 28.044148] IPv6:ADDRCONF (NETDEV_CHANGE):ETH0:链路就绪

    ETH0   链路 encap:以太网 HWaddr DA:FE:90:09:B4:32  
         inet6 addr:fe80::d8f:90ff:fe09:b432/64范围:链接
         上行广播运行多播 MTU:1504 Metric:1
         Rx 数据包:0错误:0丢弃:0溢出:0帧:0
         TX 数据包:0错误:0丢弃:0溢出:0载波:0
         冲突:0队列 txelen:1000
         RX 字节:0 (0.0 B) TX 字节:0 (0.0 B)

    ethphy0 链路 encap:以太网 HWaddr DA:FE:90:09:B4:32  
         上广播多播 MTU:1500 (指标):1
         Rx 数据包:0错误:0丢弃:0溢出:0帧:0
         TX 数据包:0错误:0丢弃:0溢出:0载波:0
         冲突:0队列 txelen:1000
         RX 字节:0 (0.0 B) TX 字节:0 (0.0 B)

    ethphy1 链路 encap:以太网 HWaddr DA:FE:90:09:B4:32  
         广播多播 MTU:1500 Metric:1
         Rx 数据包:0错误:0丢弃:0溢出:0帧:0
         TX 数据包:0错误:0丢弃:0溢出:0载波:0
         冲突:0队列 txelen:1000
         RX 字节:0 (0.0 B) TX 字节:0 (0.0 B)

    您能否告诉我们,在使用 DP83849I 部件(双端口 PHY)而驱动程序用于 DP83848时,是否需要修改任何驱动程序设置? 我没有从 TI 获得用于 DP83849的驱动程序。

    另外,如果您在前面附的硬件原理图中发现任何问题,请告诉我。  

    此致、

    比特什

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,  ,

                            另外、当我向 phy0发出通信时、我还收到以下日志、

    命令-  ip link set dev ethphy0 up

    记录如下-  

    [ 300.177226] sja1105 spi1.0 ethphy0:为 phy/mii 链路模式配置

    [300.189393]-------  [剪切此处]-------

    [300.19435] 警告:CPU:0 PID:318 at drivers/net/phy/phy.c:1157 phy_ST4

    [300.202506] 从 NOLINK 调用

    [300.206101] 模块链接在: bnep tag_sja1105 sja1105 pcs_xpcs brcmfmacg

    [300.217606] CPU: 0 PID: 318 Comm: IP not damised 6.1.58#1         

    [ 300.22311]硬件名称:Freescale i.MX6 Quad/DualLite (设备树)   

    [300.229653]  来自 show_stack+0x10/0x14的 discount_BACKTRACE          

    [ 300.234911] 从 dump_stack_lvl+0x58/0x70中的 show_stack           

    [ 300.239990 ] dump_stack_lvl from _warn+0x70/0x1a4             

    [ 300.244808] ___warn from WARN_sleppath_fmt+0x1bc/0x270           

    [ 300.249965] 来自 phy_start+0x58/0xb4的 warn_sleppath_fmt          

    [ 300.255211] 来自 DSA_PORT_ENABLE_RT+0x54/0x9C 的 phy_start          

    [ 300.260547] 从 DSA_SLAVE_OPEND+0xb8/0x17c 的 DSA_PORT_ENABLE_RT       

    [300.266406]  DSA_SLAVE_OPEN 从_DEV_OPEN+0xec/0x1ac 开始           

    [ 300.271570] _DEV_open (来自_DEV_CHANGE_FLAGS+0x18c/0x224)        

    [ 300.277158] 来自 DEV_CHANGE_FLAGS+0x14/0x44的_DEV_CHANGE_FLAGS      

    [ 300.283094] 来自 DO_setlink+0x254/0xe4c 的 DEV_CHANGE_FLAGS         

    [ 300.288517] 来自 rtnl_newlink+0x598/0x80c 的 DO_setlink           

    [ 300.293593] 来自 rtnetlink_rcv_msg+0x168/0x574的 rtnl_newlink        

    [ 300.299268] rtnetlink_rcv_msg from netlink_rcv_skb+0xb8/0x11c       

    [ 300.305119] netlink_rcv_skb from netlink_unicast+0x1a8/0x2dc       

    [ 300.31081] 来自 netlink_sendmsg+0x1d8/0x450的 netlink_unicast       

    [300.316666]  netlink_sendmsg from __sys_sendmsg+0x188/0x258       

    [ 300.322439] ___sys_sendmsg from __sys_sendmsg+0x6c/0xa4         

    [ 300.327947] __sys_sendmsg+0x50/0x98中的 sys_sendmsg           

    [ 300.333107] sys_sendmsg from ret_fast_syscall+0x0/0x1c          

    [ 300.338352]异常堆栈(0xf10b9fa8到0xf10b9ff0)           

    [ 300.343418] 9fa0:          00000000 00000001 00000003 Bedbe740 00

    [ 300.351608] 9fc0:00000000 00000001 b6fb05a0 00000128 65732949 00000000 00

    [300.359796] 9fe0: 00000128 bedbe6e0 b6eafe6d3 b6e21ae6           

    [300.364928] IRQ 事件戳:3223                     

    [300.36826263] hardirqs last enabled at (3231):[ ]__up_console_s0

    [300.376182] hardirqs Last disabled at (3240):[ ]__up_console_s0

    [300.384094] 上次 启用时间为(3126):[ ]__do_softirq+0c

    [300.391832] 上次禁用时间为(3079):[ ]__irq_exit_rcuc

    [300.399748]--[ 结束布线0000000000000000]---  

    此致、

    比特什

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Bitesh:

    我不确定我是否理解正确。 将寄存器0x0000的第[11]位和第[10]位写入0后,您能够看到 PHY1正确链接,PHY0仍然无法正确链接?

    如果是、您能否将 PHY0和 PHY1之间的寄存器转储从0x0000发送到0x001F? 我们想要比较这两者的状态。

    我还可以问 PHY0和 PHY1之间的链路伙伴是什么吗?

    --

    此致、

    林希尔曼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

      请找到寄存器的内容。 如果您有任何解决方案、请告诉我。

    地址 PHY 0寄存器的内容 PHY 1寄存器的内容
    0x00 0x3100                                                                           0x3100                                                                          
    0x01 0x7849                                                                           0x7849                                                                          
    0x02 0x2000                                                                           0x2000                                                                          
    0x03 0x5ca2                                                                           0x5ca2                                                                          
    0x04 0x05e1                                                                           0x0141                                                                          
    0x05 0x0000                                                                           0x0000                                                                          
    0x06 0x0004                                                                           0x0005                                                                          
    0x07 0x2001                                                                           0x2001                                                                          
    0x08 0x0000                                                                           0x0000                                                                          
    0x09 0x0000                                                                           0x0000                                                                          
    0x10 0x4000                                                                           0x0000                                                                          
    0x11 0x0000                                                                           0x0000                                                                          
    0x12 0x0000                                                                           0x0000                                                                          
    0x13 0x0000                                                                           0x0000                                                                          
    0x14 0x0000                                                                           0x0000                                                                          
    0x15 0x0000                                                                           0x0000                                                                          
    0x16 0x0100                                                                           0x0100                                                                          
    0x17 0x0001                                                                           0x0001                                                                          
    0x18 0x0000                                                                           0x0000                                                                          
    0x19 0x8020                                                                           0x8021                                                                          
    0x1A 0x0804                                                                           0x0804                                                                          
    0x1b 0x0000                                                                           0x0000                                                                          
    0x1C 0x0000                                                                           0x0000                                                                          
    0X1D 0x6011                                                                           0x6011                                                                          
    0x1E 0x003F                                                                           0x003F                                                                          
    0x1F 0x0000                            0x0000   

    此致、

    比特什

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Bitesh:

    根据寄存器转储、PHY0也未建立链接。 您是否通过读取 PHY0和 PHY1上的多路复用时间来确保寄存器不会锁存到之前的 stagfe?

    --

    谢谢!

    林希尔曼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

      我直接使用用于 DP83849部件的 DP83848驱动程序。 我在器件树中启用了2个端口。 这种方法是否正确?

    请告诉我,如果我想使用 DP83848部件驱动程序中的双端口 PHY ,需要做什么修正。

    此致、

    比特什  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Bitesh:

    现在、我们没有测试驱动程序所需的硬件。 我不知道848驱动程序初始化将如何处理双端口功能。

    目前我们不支持此查询。

    此致、

    林希尔曼