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.

[参考译文] TMDS570LS31HDK:TMDS570LS31HDK

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/789540/tmds570ls31hdk-tmds570ls31hdk

器件型号:TMDS570LS31HDK
主题中讨论的其他器件:HALCOGEN

你(们)好。

我正在运行 HALCoGen 生成的初始化代码、执行会在  Dp83640IDGet 内的 MDIOPhyRegRead 中停止、Dp83640IDGet 正尝试读取 ID2寄存器。

我已正确打开 DIP S2、所有地址看起来都正常。 但是、当通过 MDIO_USERACCESS0发出命令时、不会在 MSB 保持置位时执行该命令。

请帮助。

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

    请检查 MDIO 时钟设置:

    MDIO 时钟基于 VCLK3外设总线时钟的分频、并且指定运行频率高达2.5MHz。 通常使用1.0Mhz。 如果 VCLK3为80MHz、则时钟分频器应为:80 (79+1)

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

    您好、QJ Wang、

    感谢您的回复。 80MHz 时的 VCLK3配置似乎没有任何问题、值0x4104004F 被写入 MDIO 控制寄存器。

    但寄存器视图显示0x410C004F、这意味着故障检测被启用并且有一个 PHY 故障。 活动寄存器和链路寄存器都显示为0。

    那么、我想我有一个坏板吗?

    Karl

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

    我不确定 PHY 是否有问题。 您是否能够通过向该故障位写入1来清除故障位? 请尝试使用不同的时钟频率来读取 PHY ID 寄存器、然后检查是否获得正确的返回值。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、QJ Wang、
    尝试清除后没有变化。 我不会读取 PHY ID、而只是执行 MDIOInit。
    这是我的修改后的代码

    uint32 clkDiv =(mdioInputFreq/mdioOutputFreq)- 1U;
    uint32 val =((clkDiv 和 MDIO_CONTRAL_CLKDIV)
    | MDIO_CONTINT_ENABLE
    | MDIO_CONTING_PREAMBLE
    | MDIO_CONTROL_FAULTENB);
    HWREG (baseAddr + MDIO_CONTROL)= val;

    Val += 0x00080000;
    HWREG (baseAddr + MDIO_CONTROL)= val;

    这是观察到的控制寄存器值:

    初始值:0x810000FF

    写入:0x4014004F

    读取:0x411c004F

    尝试清除故障、写入:0x401C004F

    读取:0x411C004F
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我尝试了另一个板、它表现出相同的行为。
    我检查了时钟并在 system.h 中找到
    #define VCLK3_FREQ 80.000F

    有什么建议吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我发现 MDIO (G3)和 MDCLK (V5)未在 HalCoGen 的 PINMUX 视图中连接。
    这是罪魁祸首。