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.

[参考译文] AM263P4:MDIO PHY 过度传输

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1385203/am263p4-mdio-phy-excessive-transmissions

器件型号:AM263P4
主题中讨论的其他器件:SysConfig

工具与软件:

我正在尝试在定制 PCB 上使用 CPSW。 我的 SysConfig 工程配置为使用 端口2。 PHY 针对 ADDR =2进行自举。 我实现了一个 BSP 以方便将驱动程序绑定到此端口。 不过、我看到什么是 MDIO 读取错误。 在 EnetPhy_getid ()中、从 PHY_PHYIDR1和 PHY_PHYIDR2读取的值如下所示:

…μ A 与数据表中的预期值不匹配、如下所示:

‘示波器探测 MDIO 总线时、我发现 MDIO 总线具有合理的信号完整性、但总线非常"健壮"。 每~80us 我看到什么看起来是重复相同的交易。 当处理器在断点处停止时、此操作仍然存在。 此外、在不解析事务的情况下、它看起来相当符合中定义的帧格式:

AM263Px Sitara 微控制器技术参考手册(spruj55)、第3.2.1.4.9.1节- MDIO 帧格式、

 

在以下两个图像中捕获了一个事务:

如上所述、在80us 内将有另一笔相同的交易。

阅读 spruj55第13.2.1.4.9.2节 MDIO 功能说明、如下所示:

…μ A 提示我尝试读取 CPSW_MDIO_USER_ACCESS_REG_k GO。

 

理由:硬件必须启动我在示波器上看到的事务。

 

读取:

 AM263Px Sitara 微控制器寄存器附录(spruj57)

此处所示:

…μ A 和此处:

 

…μ A 提示我使用以下"Watch Expressions":

 *((uint32_t *) 0x52820F80)

 *((uint32_t *) 0x52820F80)

 

不过、我读取的寄存器值与行为不一致。 我为 CPSW_MDIO_USER_ACCESS_REG_k 读取零、如下所示:

我希望在两个寄存器中的至少一个中设置 GO 位。

1)

我的监视表达式是否正确?

 

2)

我对"‘MDIO "行为及其与 CPSW_MDIO_USER_ACCESS_REG_k GO 位的关系的假设是否正确?

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

    您好!

    对不起,延迟,我是在它,并将很快回到你。 您能给我们讲一讲这个用的例子是什么吗?

    谢谢。此致、
    Narayanraao Puli.

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

    尊敬的 Narayanarao:

    感谢您的更新。

    从最初的帖子开始、我对 MDIO 有了更好的理解。 我连接了一个逻辑分析仪以分析流量。  

    1)

    Sitara‘s"扫描"每个 PHY 地址。 即、它正在对寄存器0x01执行到每个可能 PHY 地址的读取事务。 ‘这些似乎是我以前提到的"聊天"交易的大部分。

    这是准确的吗?

    2)

    一旦、PHY 响应这种读取、然后 PHY 驱动程序:

    • 读取 ID 寄存器
    • 如果一个驱动程序匹配、则将其绑定
    • 如果自举尚未执行、则通过 MDIO 配置 PHY
    • 尝试通过 MDIO 轮询来检测链路

    这是准确的吗?

    3)

    我对 MDIO_CLK 有疑问

    此事务显示了有效的 MDIO 读取。 似乎数据(由 PHY 发送)在 CLK 的下降沿被采样、而预 TA 数据 (由 Sitara 发送) 在上升沿被采样。

    这是如何指定 MDIO 协议吗?

    此致、

    Tollman

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

    尊敬的 Tollman:

    Sitara‘s似乎"正在扫描"每个 PHY 地址。 即、它正在对寄存器0x01执行到每个可能 PHY 地址的读取事务。 ‘这些似乎是我之前提到的"聊天"交易的大部分。

    是的。 首先、我们将提供 PHY 地址、它将通过相应的地址扫描 PHY。 检测到正确的 PHY 后、我们就为处理事务做好准备。

    [报价 userid="588454" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1385203/am263p4-mdio-phy-excessive-transmissions/5298858 #5298858"]

    一旦、PHY 响应这种读取、然后 PHY 驱动程序:

    • 读取 ID 寄存器
    • 如果一个驱动程序匹配、则将其绑定
    • 如果自举尚未执行、则通过 MDIO 配置 PHY
    • 尝试通过 MDIO 轮询来检测链路

    这是准确的吗?

    [报价]

    流程正确。  这就是 PHY 的实际配置方式。

    此事务显示有效的 MDIO 读取。 数据(由 PHY 发送)似乎在 CLK 的下降沿进行采样、而 pre-TA 数据 (由 Sitara 发送)似乎 在上升沿进行采样。[/QUOT]

    根据器件规格(AM263P)、应在上升沿对 MDIO 数据进行采样。 即使在 PHY (DP83826)数据表中、数据也会在上升沿进行采样。

    如果您有任何疑问、可以随时咨询。

    谢谢。此致、

    Narayanraao Puli.