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.

[参考译文] DP83869HM:设置 Rev A 和 Rev B 之间的差异

Guru**** 2394295 points
Other Parts Discussed in Thread: DP83869HM

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1213893/dp83869hm-setting-difference-between-rev-a-and-rev-b

器件型号:DP83869HM
主题中讨论的其他器件: DP83869

您好!

我想确认 DP83869HM 的 Rev A 和 Rev B 之间的区别。
我理解这两者之间的区别如下。

*更改设计以修复光纤自动否定中偶尔出现的异常。

这表示我理解 TI 只对与光纤自动协商相关的点进行了修改。
但是、我发现了以下差异。

1.更改"RGMII to 1000Base-X"的设置。
根据数据表修订版 B、"RGMII 转1000Base-X 模式"有以下说明。

•将0x0041写入寄存器1DFh //将工作模式设置为 RGMII 至1000Base-X
•将0x1140写入寄存器 C00h // Reset FX_CTRL
•将0x4000写入寄存器1Fh//软件复位

另一方面、对于数据表修订版 A、存在以下有关"RGMII 转1000Base-X 模式"的说明。

配置寄存器0x01DF 之后、执行以下操作。
•将0x1140写入寄存器0x0000

在修订版本 B 中添加了寄存器访问
并且 TI 需要写入0x1140的寄存器从0x0000更改为0xC00。

2.地址0x1EC、0xC09和0xC10在数据表版本 B 中披露

然后我有以下问题。

问题1: 即使用户使用 DP83869HM 器件的 Rev A 版本、使用"RGMII to 1000Base-X"模式时是否需要遵循数据表 Rev B 的说明?
问题2. 如果用户使用 DP83869HM 器件的 Rev A 版本、用户还可以访问我上述"2"的寄存器吗?
是仅在 DP83869HM 的修订版 B 版本中添加还是 TI 误添加了数据表修订版 A 说明(只更改了拼写错误)?

此致、

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

    您好!

    关于您的第一个问题、如果仔细检查、Rev A 数据表会告诉您在其显式命令之前提供适当的运算代码。 而现在则为所有模式明确定义该操作码、寄存器0x1DF。 无论修订如何、方法都是完全相同的。

    关于第二个问题、我们已将这些问题公开、以更正版本 A 中的拼写错误。在不同器件版本中、此功能相同。

    此致、

    Gerome.

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

    您好!

    我了解问题2的答案。
    关于问题1、我还有其他问题。

    1-1.
    >而现在,该操作码是为所有模式,寄存器0x1DF 明确定义的。
    我理解上述答案、但我有以下问题。

    根据修订版 A 的数据表、TI 说明了用户需要将0x1140写入地址0x0000。
    另一方面、根据修订版 B 的数据表、 TI 说明用户需要将0x1140写入地址0x0C00。

    我的客户说、将数据写入地址0x0000时、如果将 DP83869HM 与版本 A 一起使用、似乎将相同的数据应用于地址0x0C00
    (反之亦然。)

    但是、当 TI 将数据表从修订版 A 更改为修订版 B 时、TI 更改了有关应写入哪个0x1140的寄存器的说明

    Q1-1. 如果是 Rev A、则0x0C00影子寄存器为0x0000并且在更新 Rev B 时改变了对该寄存器的处理?
    (如果是 Rev B、0x0C00不是0x0000的影子寄存器?)
    Q1-2. 如果上述 Q1-1-1的答案是"否"、您能否告诉我用户如何删除标准寄存器(0x0000)和扩展寄存器(供应商定义)寄存器(0x0C00)?
    (因为、如果用户将地址0x0000设置为某个值、则会应用相同的设置。 换句话说、我认为用户无需访问扩展(供应商定义)寄存器。)

    此致、

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

    您好!

    我不熟悉您的术语"影子寄存器"。 对于 Rev A 数据表、这是一个已更正的拼写错误。 它应该是0x1140写入寄存器0xC00。 无论器件修订版本如何、都需要遵循此方法。  

    此致、

    Gerome.

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

    您好!

    感谢您的答复。
    我不确定0xC00是否作为影子寄存器工作、但我认为行为类似、因此我写道。
    此处是有关影子寄存器的说明。

    简而言之、影子寄存器是在微控制器内专门设计的寄存器、用于保存某些数据供以后使用。 名称"阴影"意味着重复一些价值,并再次使用它-所以它不会丢失。
    https://electronics.stackexchange.com/questions/86032/what-actually-is-a-shadow-register

    顺便说一下、您对以下行为有何看法?

    >我的客户说,当将数据写入地址0x0000,似乎相同的数据将应用到地址0x0C00的情况下使用 DP83869HM 与版本 A
    (反之亦然。)

    从上面看、我们有以下问题。

    用户如何发布标准寄存器(0x0000)和扩展(供应商定义)寄存器(0x0C00)?
    (因为、如果用户将地址0x0000设置为某个值、则会应用相同的设置。 换句话说、我认为用户无需访问扩展(供应商定义)寄存器。)

    此致、

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

    您好!

    感谢您的提问。 要访问0x0 - 0x1F 但在 MMID 1F 空间内的寄存器、请参阅数据表的第9.4.9.1节。 客户需要做的就是4步寄存器写入过程、以对非0x0到0x1F 寄存器进行写入。

    此致、

    Gerome.

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

    您好!

    感谢您的答复。
    我了解第9.4.9.1节。
    换句话说、我知道地址0x0和0xC00未从上面的部分连接(相关)。
    (如果用户希望访问地址0x0、只需指出0x0。 如果用户想要访问地址0xc00、则需要设置 REGCR[4]和设置 ADDAR 以指向0xc00。 因此访问方法不同。)

    但是、客户说的如下。

    >我的客户说,当将数据写入地址0x0000,似乎相同的数据将应用到地址0x0C00的情况下使用 DP83869HM 与版本 A

    (反之亦然。)

    您能否在内部重新确认标准寄存器(0x0 - 0x1F)是否与光纤相关的扩展寄存器(寄存器名称为 FX_xxx 并将0xC00添加到0xC19)无关?

    此致、

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

    您好!

    虽然在0x0和0xC00之间设置的数据似乎相同、但这些寄存器是相互独立的、必须单独设置。

    此致、

    Gerome.

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

    您好!
    >虽然在0x0和0xC00之间设置了相同的数据,但它们是相互独立的寄存器,必须单独设置。
    我 认识到以上内容。
    但是、事实上客户说、当他们将数据设置到地址0x00时、同样的数据也应用于地址0xC00。
    这意味着当用户设置了要写入地址0xC00的数据时、如果在该数据之后有东西将数据设置为地址0x0、则地址0xC00的数据会被意外覆盖。  
    你能理解我们的情况吗?

    此致、

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

    您好!

    我想我现在理解了这种情况,但我不同意调查结果。 我刚刚使用 USB2MDIO 在 DP83869 EVM 上进行了测试。 我首先读取0x0和0xC、然后它们分别读出0x1140和0x140。 然后、我将寄存器0x0更改为0x900、读回以确认、然后读取0xC。 该值不会改变。

    此致、

    Gerome.

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

    您好!

    >然后我将寄存器0x0更改为0x900,读回进行确认,然后读取0xC。 该值不会改变。
    好的。 我也预料到了这一结果。 它们使用 Linux OS 并使用 Linux 设备驱动程序。
    我认为在此驱动器上执行了错误的操作。 我会再次咨询客户。

    BTW、它们参考以下驱动程序信息。 但该驱动程序似乎仅应用版本1 (值0x03为0xa0F1)。
    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/phy/dp83869.c

    #define DP83869_PHY_ID 0x2000a0F1

    是否计划更改设备驱动程序? 或者客户是否应该通过自行更改驱动程序代码(由 TI 或客户提交?)来响应新修订版?

    此致、

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

    您好!

    此驱动程序的修复方法应该是应该有另一个#define 并具有新的 PHY ID 0x2000A0F3、如果有条件引用 DP83869_PHY_ID、则旧器件 ID 和新器件 ID 之间应该有"或"操作。  

    此致、

    Gerome.

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

    您好!

    很抱歉、让我再次确认以下内容。

     我首先读取0x0和0xC、然后它们分别读出0x1140和0x140。 然后、我将寄存器0x0更改为0x900、读回以确认、然后读取0xC。

    是否高于"0xC"错误"0xC00"?
    (实际上、没有关于地址"0xC"的公开寄存器、因此我认为这是"0xC00"的错误。)  

    另外、我希望大家确认 EVM 的功能模式。
    如果您的 EVM 设置与"RGMII to 1000Base-X"不同、在将自举引脚更改为"001"后、您能否确认结果?


    此致、

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

    Machida、您好!

    是的、0xC 应为0xC00。 是的、引脚22应上拉为高电平、而引脚36和35可保留、无需搭接或下拉。

    此致、

    Gerome.

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

    您好!

    感谢您的答复。
    那么、您确认地址0x1df 显示0x41了吗、对吧?  
    (我想知道为什么0xC00会在您的上一个线程中显示0x140。 因为默认值地址0x0000和0xC00都是相同的值0x1140。)
    我认为只有将此设备设置为"1000Base-X"光纤模式时、才会出现客户现象。
    所以、我问这个问题。

    此致、

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

    您好!

    我需要在实验中检查这一点。 请最迟在下星期三回复。

    此致、

    Gerome.

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

    您好!

    当接入 RGMII 到1G 光纤时、寄存器0x1DF 显示0x0001。 经进一步审查,已确定[6]与此模式的设备功能无关。 我们将在下一个数据表修订版本中修正此问题。  

    当捆绑进入这个模式时、0xC00读取0x1140。

    此致、

    Gerome.

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

    您好!

    感谢您的确认。
    -1-
    >当卷进此模式时,0xC00读出0x1140。
    您在上述情况下发布的以下程序的结果如何?

    我刚刚使用 USB2MDIO 在 DP83869 EVM 上进行了测试。 我首先读取0x0和0xC、然后它们分别读出0x1140和0x140。 然后、我将寄存器0x0更改为0x900、读回以确认、然后读取0xC。 该值不会改变。

    -2-
    >经过进一步审查,已确定[6]与此模式的设备功能无关。
    根据修订版 B 的数据表、TI 在 9.4.8.2节" RGMII 转1000Base-X 模式"中描述了用户需要将0x41写入地址0x1DF。
    但是,你的意思是用户不需要向地址0x1DF 的第6位写入"1"吗?

    此致、

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

    您好!

    上述状态在-1中描述的是 PHY 处于 RGMII 到铜缆模式运行代码0时的状态。 这些寄存器相互独立、请将它们视为独立寄存器。

    对于-2-、这是正确的。 该位与该模式无关。

    此致、

    Gerome.

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

    您好!

    >-1中描述的上述状态是当 PHY 处于 RGMII 到铜缆模式,运行代码0时。 这些寄存器相互独立、请将它们视为独立寄存器。

    我希望您提出的问题是、当您设置操作码1 (RGMII 至1000Base-X)时、您可以观察到与操作码0的情况相同或不同的结果。
    你能给我以上的回复吗?

    Br、

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

    您好!

    当处于操作码1中时、默认情况下寄存器0xC00 = 0x1140。 但是、像以前一样将寄存器0x0更改为0x900时、观察到寄存器0xC00也回读0x900。

    此致、

    Gerome.

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

    您好!

    感谢您的确认。
    我了解您获得了我发布的相同结果(客户关注)。

    那么、我有以下问题。

    问:当用户使用 RGMII 到1000Base-X 模式时,用户如何处理标准寄存器?
    是否建议只控制扩展寄存器?

    根据数据表9.4.8.2、TI 似乎建议控制扩展寄存器。
    然而,从上面,由于扩展寄存器被改变只是控制标准寄存器,用户只是控制标准寄存器在 RGMII 到1000Base-X 模式?

    此致、

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

    您好!

    当处于 RGMII 至1000Base-X 模式时、请访问寄存器0xC00以实现适当的寄存器控制。

    此致、

    Gerome.