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.

[参考译文] DP83867IR:关于 DP83867IR 软件流程图

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1387210/dp83867ir-about-dp83867ir-software-flow-chart

器件型号:DP83867IR

工具与软件:

大家好、团队。

我们计划使用 DP83867IR 进行产品功能设计、即 RGMII 模式。
我在手册中找到了寄存器映射表。 目前尚不清楚如何使用这些寄存器。 TI 能否提供 DP83867IR 的初始化软件流程图、发送/接收的软件流程图。 最好能够使用寄存器进行操作。 谢谢你。

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

    尊敬的 Shen:

    从硬件级别来看、DP83867可以配置为 RGMII 模式、只需配置(strap)即可、无需访问寄存器。

    请分享有关 PHY 的系统要求(速度、自动协商、镜像模式)的更多详细信息、以便我可以确认正确的 strap 配置设置。

    虽然该器件可在捆绑进入所需的模式后运行、但仍建议使用寄存器访问和驱动程序功能来实现调试和诊断功能。

    为此、请确认客户使用的处理器和操作系统、以便我可以分享相应的驱动程序。

    谢谢!

    Evan

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

    你(们)好 Mayhew

    使用的处理器是 Intel FPGA 的 Cyclone V。它可以运行 Linux 系统或 FreeRTOS。

    千兆位 RGMII 接口、具有自动协商功能、最好提供软件流程图或寄存器初始化操作说明。 谢谢你。

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

    您好、Sheng:

    应为启用自动协商的千兆位 RGMII 设置以下寄存器:

    0x0[12]='1'(启用自动协商)

    0x0[8]='1'(全双工)

    0x32[7]='1'(启用 RGMII)

    0x32[1:0]='xx'(TX/RX_CLK 移位/对齐模式-此处的设置将取决于 MAC/PHY 之间的时钟延迟)

    0x86[7:0]='xx'(在移位模式下配置 TX/RX_CLK 延迟)

    0x32和0x86中的寄存器设置取决于 RGMII 的应用、请参阅此 常见问题解答 和数据表中的 RGMII 时序要求。

    谢谢!

    Evan

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

    你(们)好 Mayhew

    感谢您的答复。

    1、如果我想获得 PHY 链路的状态、如何操作寄存器?

    2、在器件接收处理期间等待接收标志时发生超时时时所采取的操作。 操作寄存器?

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

    您好、Sheng:

    1.请读取寄存器0x1[2]以了解链路状态。 该寄存器锁存为低电平、可能需要多次读取。

    2、 这对我来说并不清楚。 您是指中断/PHY 状态寄存器、还是指在超时情况下要配置的某些操作寄存器? 通常、如果发生超时、可能会定期触发一些 PHY 复位/重启寄存器:

    0x0[9]='1'(重新启动自动协商过程)

    0x1F = 0x8000 (PHY 软件复位、包括寄存器)

    0x1F = 0x4000 (PHY 软件复位、不包括寄存器)

    谢谢!

    Evan

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

    你(们)好 Mayhew

    感谢您的答复。

    关于以上第一份答复。

    1.请读取寄存器0x1[2]以了解链路状态。 该寄存器锁存为低电平、可能需要多次读取。

    我不太明白这意味着什么、为什么需要多次读取?

    2、我当前将 LAN PHY 寄存器操作分为初始化和链路状态确认两部分。

    下面是 PHY 初始化寄存器的配置序列。 是否需要添加第二步? 或者添加它有什么好处吗?

    3、SW_RESET 和 SW_RESTART 之间的区别是什么?

    我可能需要在将来再问您一些问题、不会花费太长的时间。 我暂时不想结束这个主题。 非常感谢。

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

    您好、Sheng:

    1) 1)链接之前、寄存器0x1[2]在上电时初始化为"0"。 连接建立时、该值可能不会更新、直到在读取寄存器时清除过去的值:

    对于用于检查链路接通的状态机逻辑、我建议读取0x1[2]两次、以确认准确的链路状态。

    2) 2)虽然并非总是需要执行此步骤、但建议重新启动 PHY 的内部状态机以获取"全新"配置、从而尝试建立链路。

    3) 3) SW_RESET 和 SW_RESTART 都将重新启动 PHY 的内部状态机。 但是、只有 SW_RESET 会将寄存器刷新为默认值。

    谢谢!

    Evan

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

    你(们)好 Mayhew

    感谢您的答复。

    答复的第二部分。 我不明白。

    2) 2)虽然并非总是需要执行此步骤、但建议重新启动 PHY 的内部状态机以获取"全新"配置、从而尝试建立链路。

    我添加了 SW_RESTART 操作、以希望 PHY 初始化过程不会受到外部复位的影响、从而导致配置寄存器失败。 我是否有必要添加此步骤? 或者添加这一步有什么好处? 我已经阅读了其他人的建议、但我不确定是否需要添加此步骤。

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

    您好、Sheng:

    是的、建议使用前两个步骤。

    0x0[15]='1'将执行 PHY 的完全重启并 将寄存器复位为默认值/自举值。

    0x1F = 0x4000将重新启动 PHY 的内部状态机。

    这两个步骤的目标都是为 PHY 准备配置、方法是将其重新启动为搭接和内部状态机的默认状态。

    如果没有此步骤、可能会出现边缘情况、在这些情况下 PHY 可能会卡在未知/不可配置状态、直到复位。

    还建议再次将0x1F = 0x4000作为配置的最后一步、以便 PHY 的内部状态机可以重新启动并使用设定的配置开始链接。

    如果这一点很清楚、请告诉我。

    谢谢!

    Evan