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.

[参考译文] TMS570LC4357:仅限 MDIO 用户命令

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/572737/tms570lc4357-mdio-user-command-only

器件型号:TMS570LC4357

您好!

我们希望将 SMSC LAN9303以太网交换机直接连接到 TMS570LC4357 EMAC。 在基本配置中、它可以正常工作。 但是 、对于高级配置、我们需要通过 MDIO 接口发送一些配置数据。 问题是、它需要一对 MDIO 数据包、而没有另一个 MDIO 周期。 Hercules 有两个 MDIO 用户访问寄存器。 但后台状态机仍然有效、并且始终交错这两个用户通信。 (LAN9303的控制寄存器映射为 PHYADR 0x10-0x1F。 链路状态状态机轮询全部32个 PHY。)
是否有任何方法可以作为一对发送两个 MDIO 用户命令、而不会中断链路状态机? 或者是否可以停止该状态机? 或者、是否可以通过启用 MDIO 进行一些操作来仅发送一个(用户) MDIO 命令? 链路状态状态机范围是否可以限制?

我正在尝试在 MDIO 控制寄存器中找到任何可能、但没有成功。

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

    问得好、但我认为没有任何方法可以禁用链路状态的持续轮询。

    您是否尝试在 USERACCESS0之后使用 USERACCESS1、以便两者都设置了"GO"? TRM 中确实提到了"轮询仲裁"、因此当 USERACCESS0完成时、让另一个 USERACCESS1准备好"运行"将阻止后台轮询的中断。

    这只是一个疯狂的猜测。 我们需要对内部文档进行一些研究、看看我们是否可以找到一些备份的东西、如果它碰巧正常工作、因为我在 TRM 章节[用户与持续链路主动轮询之间的仲裁]中看不到它的明确描述。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Anthony、

    当然、我尝试尽可能地将 USERACCESS0写入到一起、然后将 USERACCESS1写入到一起。 但它仍然由状态机连续 池交错。

    我们已经修改了原型硬件。 我撰写此电子邮件、因为我需要确认、绝对需要修改硬件。 有些人(包括我)不喜欢 I2C 通信的第二个选项、因为 I2C 经常会遇到磁体磁场干扰问题。  

    Jiri

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

    因此、我认为我在合理的时间内完成了所有的工作:

    1) 1)我为 MDIO 制定了内部设计规格。
    遗憾的是、没有太多实现细节、即状态图、如一些其他规格。
    基本上与您在 TRM 中看到的文本相同。

    2) 2)我查看了 MDIO 内调度程序子模块的源代码。
    我没有尝试从代码中提取状态图... 这将需要相当长的时间。
    没有太多的意见。

    从它看起来--执行用户访问之后,它看起来就像移动到了“下一个 phy”
    来执行某项操作。 有一些依赖关系、比如 PHY 是否已响应或没有这种复杂情况
    在短时间内完全了解它。

    总之:
    A)我甚至看不到任何"嗅探"将两个用户访问锁回背对背的能力。
    b)规范确实表明 USERACCESS0、USERACCESS1的目的是允许您在一个正在进行的访问时排队等待第二个访问。 没有任何关于将它们锁定在一起的说法。
    c)读取规范、MDIO 被设计为在有两个 MAC 的情况下处理多达两个 PHY。
    它确实看起来是设计成在两个 PHY 之间交替。。。

    因此我猜您可能会看到它试图与第二个 phy 通信,或者在用户访问后扫描第二个 phy。。。 这就是代码看起来的样子... 虽然我无法证明这一点、但我在任何地方都看不到任何讨论、信号名称或状态名称、这些信息表明您可以将两个用户访问锁定在一起。

    因此、我敢说、90%以上的人信心十足、答案是"否"、这是无法实现的。

    此致、
    Anthony