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.

[参考译文] DP83825I:器件中的特定寄存器可以#39;t 被写入

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1116724/dp83825i-specific-register-in-device-can-t-be-written

器件型号:DP83825I

大家好、

我需要在 Register12中启用自动 Neg 中断、但无法写入该寄存器。 如您所见、其他寄存器写入成功。

我的顺序如下:

我通过将0x8000写入寄存器0x0来复位 phy over SW。 然后我写入该寄存器0x7fff、然后我尝试写入我的配置寄存器。 结果是:

MDIO 使能设置1 状态[0]
正在设置 RMII MDIO...

复位 PHY 0x0000
MDIO 读取[0、0x0000] 0x3100 状态0

写入0x0000   MDIO 读取[0、0x0000] 0x0000 状态0
写入0x7FFF   MDIO 读取[0、0x0000] 0x7D80 状态0
MDIO 读取[0、0x0000] 0x7D80 状态0
写入0x0003   MDIO 读取[0、0x0011] 0x0003 状态0
写入0x0024   MDIO 读取[0、0x0012] 0x0024 状态0
写入0x0007   MDIO 读取[0、0x000c] 0x0000 状态0

第一个值是数据、然后是 MDIO 读取、PHY 地址、寄存器地址和读取数据。

我希望您能帮我解决这个问题。

谢谢。

此致

ANNS

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

    我可以确认 LED 切换测试通过。 以下日志显示了 LED 寄存器中的交替值。

    MDIO 使能设置1 状态[0]
    正在设置 RMII MDIO...

    复位 PHY 0x0000
    MDIO 读取[0、0x0000] 0x3100 状态0
    MDIO 读取[0、0x0018] 0x0480 状态0
    MDIO 读取[0、0x0018] 0x0012 状态0
    MDIO 读取[0、0x0018] 0x0010 状态0
    MDIO 读取[0、0x0018] 0x0012 状态0
    MDIO 读取[0、0x0018] 0x0010 状态0
    MDIO 读取[0、0x0018] 0x0012 状态0
    MDIO 读取[0、0x0018] 0x0010 状态0
    MDIO 读取[0、0x0018] 0x0012 状态0
    MDIO 读取[0、0x0018] 0x0010 状态0
    MDIO 读取[0、0x0018] 0x0012 状态0
    MDIO 读取[0、0x0018] 0x0010 状态0
    MDIO 读取[0、0x0018] 0x0012 状态0
    MDIO 读取[0、0x0018] 0x0010 状态0
    MDIO 读取[0、0x0018] 0x0012 状态0
    MDIO 读取[0、0x0018] 0x0010 状态0
    MDIO 读取[0、0x0018] 0x0012 状态0
    MDIO 读取[0、0x0018] 0x0010 状态0
    MDIO 读取[0、0x0018] 0x0012 状态0
    MDIO 读取[0、0x0018] 0x0010 状态0
    MDIO 读取[0、0x0018] 0x0012 状态0
    写入0x0003   MDIO 读取[0、0x0011] 0x0003 状态0
    写入0x0024   MDIO 读取[0、0x0012] 0x0024 状态0
    写入0x0007   MDIO 读取[0、0x000c] 0x0000 状态0
    写入0x0007   MDIO 读取[0、0x000c] 0x0000 状态0
    写入0x0007   MDIO 读取[0、0x000c] 0x0000 状态0
    写入0x0007   MDIO 读取[0、0x000c] 0x0000 状态0
    写入0x0007   MDIO 读取[0、0x000c] 0x0000 状态0

    我可以对寄存器12执行多次写入、但没有变化。 为什么?

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

    尊敬的 Anns:

    您不应写入寄存器0x0000中的保留位。 为什么要向该寄存器写入0x7FFF?

    请在执行任何其他写入之前尝试写入寄存器0x000c、并查看结果是什么。

    谢谢、

    David

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

    我们已将写入0x0、我们知道这不是必需的。 但先将写入寄存器0xC、也不起作用。 寄存器值仍然为0x0。

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

    尊敬的 Anns:

    您能否向我发送一个寄存器转储、读取0x0000和0x001F 之间的每个寄存器?

    谢谢、

    David

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

    MDIO 读取[0、0x0000] 0x0000 状态0
    MDIO 读取[0、0x0001] 0x7849 状态0
    MDIO 读取[0、0x0002] 0x2000 状态0
    MDIO 读取[0、0x0003] 0xA140 状态0
    MDIO 读取[0、0x0004] 0x01E1 状态0
    MDIO 读取[0、0x0005] 0x0000 状态0
    MDIO 读取[0、0x0006] 0x0004 状态0
    MDIO 读取[0、0x0007] 0x2001 状态0
    MDIO 读取[0、0x0008] 0x0000 状态0
    MDIO 读取[0、0x0009] 0x0000 状态0
    MDIO 读取[0、0x000A] 0x0100 状态0
    MDIO 读取[0、0x000b] 0x0000 状态0
    MDIO 读取[0、0x000c] 0x0000 状态0
    MDIO 读取[0、0x000d] 0x401F 状态0
    MDIO 读取[0、0x000d] 0x0000 状态0
    MDIO 读取[0、0x000f] 0x0000 状态0
    MDIO 读取[0、0x0010] 0x0082 状态0
    MDIO 读取[0、0x0011] 0x0003 状态0
    MDIO 读取[0、0x0012] 0x2024 状态0
    MDIO 读取[0、0x0013] 0x0000 状态0
    MDIO 读取[0、0x0014] 0x0000 状态0
    MDIO 读取[0、0x0015] 0x0000 状态0
    MDIO 读取[0、0x0016] 0x0100 状态0
    MDIO 读取[0、0x0017] 0x00A0 状态0
    MDIO 读取[0、0x0018] 0x0480 状态0
    MDIO 读取[0、0x0019] 0x8000 状态0
    MDIO 读取[0、0x001A] 0x0000 状态0
    MDIO 读取[0、0x001b] 0x007D 状态0
    MDIO 读取[0、0x001c] 0x05EE 状态0
    MDIO 读取[0、0x001d] 0x0000 状态0
    MDIO 读取[0、0x001e] 0x0002 状态0
    MDIO 读取[0、0x001f] 0x0000 状态0

    该转储在复位和寄存器写入我们的特定配置后完成。 除其他外、我们写入寄存器12 0xF。 但它保持为零。 我还写入0x12和0x17、并将正确的值写入其中。
     

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

    尊敬的 Anns:  

    让我检查一下我是否可以在实验室中重现此问题、下周再见。

    谢谢、

    David

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

    尊敬的 Anns:

    我能够在实验室中复制您的观察结果。 我不确定为什么寄存器0x000C 不可写、但这不是启用中断的正确寄存器。  

    要启用自协商中断、应向寄存器0x0012位[2]写入1、然后向寄存器0x0011位[1]写入1。 请告诉我这是否可行。

    谢谢、

    David