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.

[参考译文] DP83TC812S-Q1:以太网消息

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1212077/dp83tc812s-q1-ethernet-message

器件型号:DP83TC812S-Q1

目前,上汽一方遇到了如下阻隔偶尔以太网报文的问题
(1)关于问题描述:当前有两种问题症状
1.0x0001寄存器显示0x65、即链路、但以太网通信异常。控制器不会在内部接收反向消息、并且内部消息无法转发。场景继续发生、不会自动恢复。手动写入寄存器0x1F 后恢复。
2.0x0001寄存器显示0x61、即链路断开。在几分钟后、该状态可能切换到0x65.Communication、并可在期间自动恢复。
(2)当前进展:
将异常前后的所有寄存器值提取到0x18h 不同的位置、进行定位。
当出现第一种现象时、0x18 = 481d;当出现第二种现象时、0x18 = 5a25;


3.通过对比芯片手册、结合位9位14反射、phy 可能已经进入某种训练模式、尤其是第二个问题出现时。进入睡眠相关状态。
位9:1b =在睡眠状态下从远程 PHY 接收到的 WUP
位14:1b =训练开始后、在0x562中编程的时间内未观察到链路
应用层已操作0x485寄存器第12位来手动控制 phy 向下链接/向上链接。但是、寄存器第12位有一个问题:
Bit12:启用整个训练/链接以开始
培训是 PHY 芯片的特殊模式之一吗?或者如何正确使用该寄存器?异或如何通过寄存器正确控制 PHY 下行/链路?

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

    尊敬的 Colt:

    在我提供更多详细信息之前、您使用的两款器件似乎都是不同版本。
    您可以在两个器件上读取寄存器0x3吗?

    链路伙伴使用的是什么? 是 DP83TC812还是由其他供应商提供的 PHY?

    您能否确认您正在使用应用手册 https://www.ti.com/lit/ml/snla389a/snla389a.pdf 中提到的初始化寄存器设置 ?

    --
    此致、
    Gokul.

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

    对所提问题的答复如下:
    1寄存器0x3的值为 a271;
    2终端节点是网关,使用漫威开关上的 phy;
    对于初始化的寄存器设置、这些值显示在 phy_initial_val.txt 中的附件 phy_initial.rar 中。


    目前,有下列问题需要回答:
    1 Phy 的应用层操作是将寄存器0x485的值修改为0/1、因为 dp83tc812s-q1.pdf 文档显示0x485的位12是启用链路的配置、 但无法解释该位值设置为0的原因。发生先前的问题时、寄存器0x485 bit 12的值发生了0和1次修改、偶尔会导致数据包阻止问题;以太网链路建立/链路断开状态是否可以通过操作0x485手动控制?

    应用层需要通过设置寄存器值来手动控制链路建立/链路断开状态。正确的方法应该是如何操作寄存器来实现这种效果?


    3对于 链接中提到的 www.ti.com/.../snla389a.pdf 文档、它描述了启用或禁用链接功能的寄存器0x0523的位0。但是、 dp83tc812s-q1.pdf 文档不包含寄存器0x0523的任何描述。建立链路功能能否被设定为打开或者关闭来通过操作0x523地址来实现一个手工控制的以太网建立链路/断开状态?

    对于 本链接中提到的 www.ti.com/.../snla389a.pdf 文档、它描述了 PHY.Autonomy/Managed 的两种模式: 这两种模式的含义是什么?如何确定当前 PHY 处于何种模式?如何在这两种模式之间来回切换?由于 PHY 之前可能尚未运行、因此它应该是默认的自主模式、当它处于该模式时、 操作寄存器0x485值、或者这些寄存器的其它地址是否对 PHY 功能产生影响?

    e2e.ti.com/.../phy_5F00_initial_5F00_val.rar

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

    尊敬的 Colt:

    0x0485[12]可用于控制链路建立和断开。 使此位为1可使能器件链路、而设为0可禁用链路。
    此位设为1后、PHY 不会立即准备好进行通信。 主机只能在链路状态为1后传输数据包。

    寄存器0x523也可被用于初始化设置中。

    对于托管/自动模式、器件将处于待机状态为托管模式、并在自主模式下处于正常状态。
    若要使用此方法、可以使用0x018C = 0x0010表示待机状态、使用0x018C = 0x0001表示正常状态。  

    关于初始化设置、主机需要在上电或复位后对这些设置进行编程。 您共享的日志没有这些寄存器。 我希望主机对这些设置进行编程、以实现可靠的链路建立。

    --
    此致、
    Gokul.

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

    非常感谢您的答复、当前测试现象如下:
    1.修改寄存器0x485位12后、上电后、虽然可以控制链路的状态、但存在以太网阻断问题;取消寄存器0x485的位12操作不会发生;
    在设置寄存器0x523位1后、加电也可控制链路状态。 无以太网阻塞问题;
    鉴于上述情况,提出了以下几点:
    使用寄存器0x485的 bit 12操作时、以太网阻塞问题的原因是什么? 在寄存器0x485位12的运行说明中、训练/链接、训练和链接指的是什么? 现在、假设培训是在设置后开始的、而不是链路、这是导致问题的原因、那么想知道什么是培训?

    2.在最新的回复中,请说明将寄存器0x485的位12设置为1后,它不会立即生效,您能说明它不能立即生效的原因吗?


    正如您提到的、需要对主机进行编程、以便在上电或复位后进行初始化。 在测试场景中、寄存器0x523的运行在上电并通过测试后进行了实际修改;但在使用过程中的任何时候、随后的工作场景控制着链路状态。 也就是说、有可能不执行任何上电或复位、在这种情况下、能否控制链路状态?
    您是否提到这些不包括在日志0x523和0x18C 中的寄存器? 或者是否需要设置除这两个以外的其他寄存器? 如果是、还需要配置哪些寄存器(文档中的某些寄存器根本未描述)? 如果未配置这些寄存器、是否会对链路可靠性产生影响?

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

    尊敬的 Colt:

    能否详细说明一下以太网阻塞问题的含义?

    当您控制0x485[12]或0x523[0]时 (不是位1)  连接中断。 器件将再次耗费100ms 的时间建立链路、因此在此期间无法进行通信。

    您提到过,需要对主机进行编程,以便在上电或复位后进行初始化。 在测试场景中、寄存器0x523的运行在上电并通过测试后进行了实际修改;但在使用过程中的任何时候、随后的工作场景控制着链路状态。 也就是说、有可能不执行加电或复位、在这种情况下、是否可以控制链路状态?

    在编程初始化设置期间、0x523被用来在写入寄存器设置期间阻止任何发送。  
    对初始化设置进行编程后、可以使用0x523[0]。
    如果复位或上电完成、则应再次对初始化设置进行编程。

    初始化后脚本、如果您使用0x523、0x18C 或0x485、则只需要对这个字段进行重新编程、而不需要对整个寄存器集进行编程。

    (文档中的一些寄存器根本没有描述)? 如果未配置这些寄存器,是否会影响链接的可靠性?

    如果未对这些初始化设置进行编程、则并非在所有链路伙伴和条件下都能实现可靠的链路。

    --
    此致、
    Gokul.

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

    操作寄存器0x485后、有两种类型的问题(即、我在上一个问题中提到的以太网阻断问题):
    查询寄存器0x1的值为65h、状态为 link up、但控制器内部不会接收到对等器件消息。 无法转发内部消息。 场景将继续、但不会自动恢复。 手动写入寄存器0x1F 后恢复为8000。
    查询寄存器0x1的值为61h、状态为链路断开。在链路断开状态持续几分钟后、链路状态可能会切换为链路建立。 0x1查询的值再次变为65h、在此期间可以自动恢复通信。
    我的初始问题中也介绍了这种以太网阻断问题现象。
    问题仍然如下:
    在寄存器0x485操作后、以上行为是什么导致的? 训练和链路是什么意思?
    为了建立可靠连接、需要初始化设置的所有寄存器是什么?
    我希望你能回答每一篇文章。 谢谢!

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

    尊敬的 Colt:

    我可以向团队核实0x485和0x523之间的区别、并告知您。

    --
    此致、
    Gokul.

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

    添加新问题、

    测试812型 PHY 芯片时、发现该器件使引脚对地短路或对电源短路、并且寄存器0x310的位6值为0、表示短路; 但是、在开路情况下、所获取寄存器0x310的位6值为0、而不是预期的开路结果、位6值为1;

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

    尊敬的 Colt:

    在测试期间(即、线路打开时)、您能共用寄存器0x310和0x1E 的读取值吗?

    您能否确认 TDR 测试遵循 SNLA389的第7节中提到的初始化设置?

    --
    此致、
    Gokul.