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.

[参考译文] AM2612:Enet layer2 RGMII 1G 通信 Rx 正常、但 Tx 没有错误的 TX 时钟频率6.25MHz。

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1513436/am2612-enet-layer2-rgmii-1g-communication-rx-is-ok-but-tx-is-nok-with-incorrect-tx-clock-frequency-6-25mhz

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

工具/软件:

尊敬的 TI 专家:

我们在测试定制板 Enet 第2层与 AM2612的通信时遇到问题:

环境如下:

SDK: mcu_plus_sdk_am261x_10_00_01_10

syscfg: SYSCONFIG_1.23.0

TI-CGT-armllvm_4.0.1.LTS

联系方式1281.

问题是:

从闪存引导的应用程序。 引导模式为 OSPI 1S。 我们使用 RGMII 1G 进行通信。 应用程序可以 接收层2消息并将其发送出去、但 Wireshark 监视无法捕获 TX 消息。

对于由 JTAG 运行的同一应用、Wireshark 可以捕获 Rx 和 TX 消息。

我们测量了 Rx 和 TX RGMII 时钟、发现 Rx 频率为125MHz、TX 频率为6.25MHz (从闪存引导时)、使用 JTAG 时 Rx 和 TX 频率均为125MHz。

并打印了一些有关 RGMII 的寄存器:

JTAG:

MSS_RCM_MSS_RGMII_RGMII_RGMII_CLK_DIV_VAL     0x111
MSS_RCM_CPSW_5_50_250_CLK_MUX_CTRL 0x333
MSS_RCM_MSS_CPTS_CLK_SRC_SEL      0x222
MSS_RCM_MSS_CPTS_CLK_DIV_VAL      0x0

闪存:

MSS_RCM_MSS_RGMII_RGMII_RGMII_CLK_DIV_VAL     0x111
MSS_RCM_CPSW_5_50_250_CLK_MUX_CTRL 0x0
MSS_RCM_MSS_CPTS_CLK_SRC_SEL      0x222
MSS_RCM_MSS_CPTS_CLK_DIV_VAL      0x0

您可以看到 从闪存引导时寄存器 MSS_RCM_CPSW_5_50_250_CLK_MUX_CTRL (即0x53208220)值不正确。

我尝试在应用程序源代码中设置寄存器:

然后问题就解决了。 从闪存启动时、Wireshark 可以捕获 Tx 和 Rx 消息。

但我担心的是、变化是不够的。  是否 忘记了任何其他初始化工作? 您能否请在 SBL 期间对时钟初始化进行完整检查?

以下结构从 ti_power_clock_config.c 中抽象出来以供您参考。

SoC_ModuleClockFrequency gSocModuleClockFrequency[]={
{SOC_RcmPeripheralId_I2C、SOC_RcmPeripheralClockSource_DPLL_PER_HSDIV0_CLKOUT048000000}、


{SOC_RcmPeripheralId_ICSSM0_CORE、SOC_RcmPeripheralClockSource_DPLL_ETH_HSDIV0_CLKOUT0225000000}、
{SOC_RcmPeripheralId_ICSSM0_UART0、SOC_RcmPeripheralClockSource_DPLL_PER_HSDIV0_CLKOUT2160000000}、
{SOC_RcmPeripheralId_ICSSM1_CORE、SOC_RcmPeripheralClockSource_DPLL_ETH_HSDIV0_CLKOUT0225000000}、
{SOC_RcmPeripheralId_ICSSM1_UART0、SOC_RcmPeripheralClockSource_DPLL_PER_HSDIV0_CLKOUT2160000000}、

{SOC_RcmPeripheralId_CPTS、SOC_RcmPeripheralClockSource_SYS_CLK、250000000}、

{SOC_RcmPeripheralId_LIN0_UART0、SOC_RcmPeripheralClockSource_DPLL_PER_HSDIV0_CLKOUT2160000000}、

{ SOC_MODULES_END、SOC_MODULES_END、SOC_MODULES_END }、
};

此致、

Ly

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

    您好、LY:

    SBL 似乎缺少一些时钟配置。 让我与团队一起彻底检查一下。 为了帮助我更好地理解这一点、您能否回答以下问题:

    1.与 AM261x-LP 一起使用的 RGMII PHY

    2.将"0x333"写入  MSS_RCM_CPSW_5_50_250_CLK_MUX_CTRL 寄存器时、问题是否已解决且应用程序正常工作? 或者您看到更多错误了吗? 我还建议您检查 CPSW 统计信息并查看是否观察到任何数据包丢弃/ CRC 错误。 这是为了确保您不会看到意外的数据包丢弃。  

    同时、我将要求团队检查时钟配置。

    此致、
    Shaunak

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

    您好、LY:

    添加到我的答复上面,

    问题1: 您能否也为 RGMII L2应用分享您的 example.syscfg?

    问题2: 由于该参考设计是定制电路板设计、因此您还可以获得 TI 专家对您的原理图进行验证。 如果您需要这方面的帮助、请告诉我。

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    由于您提供的通信板存在一些问题、我们无法与 AM261x-LP 进行以太网通信。 你还记得吗!

    当我写入"0x333"时、第2层通信可以正常、不再观察到错误。

    Ly

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

    您好、LY:

    由于您提供的通信板存在一些问题、我们无法与 AM261x-LP 进行以太网通信。 您还记得吗!

    是的、我知道即使在集成 MX86111 PHY 时、我们也遇到了一些问题。

    [引述 userid="626411" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1513436/am2612-enet-layer2-rgmii-1g-communication-rx-is-ok-but-tx-is-nok-with-incorrect-tx-clock-frequency-6-25mhz/5817955 #5817955"]

    当我写入"0x333"时、第2层通信可以正常、不再观察到错误。

    [/报价]

    很高兴知道这是有效的、我将检查 syscfg 文件以及 SBL 中时钟缺失的配置、然后返回。

    此致。
    Shaunak

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

    您好、LY:

    导致此问题的原因在于缺少时钟配置、如果您使用开发引导模式并通过 JTAG 加载、GEL 脚本会处理时钟配置、当您从闪存引导应用程序时、SBL 会处理缺少一个步骤的时钟配置。 我们为 AM261x 移植的代码来自 AM263x、默认时钟配置发生了变化。 0x000值适用于另一个器件、但 AM261x 要求将寄存器配置为0x333。

    在 AM263x 中、CPSW RGMII 时钟选择值必须配置为0x000、这也是复位值。 因此、我们在 AM263x 中没有遇到任何问题。

    但在 AM261x 中、RGMII 多路复用器选择值应为0x333、以获得适当的 RGMII 时钟、复位值为0x000。 因此、RGMII 在 AM261x 中无法正常工作。
    现在、我们已经在应用程序中添加了一些代码更改以 正确配置 RGMII 时钟、SDK v10.02正式修复了该时钟、但您也可以使用以下文件(替换此路径中的现有文件): C:\ti\workarea_west\mcu_plus_sdk\source\networking\enet\coreconfig\networking\.meta\cpsw\am261x\enet_cpsw\am261xscfg_amsw.js

    e2e.ti.com/.../8611.enet_5F00_cpsw_5F00_am261x.syscfg.js

    此致、
    Shaunak

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

    添加到上面的回复中、  

    1.您 还需要  使用以下文件更新您的源/驱动程序/ soc / am261x 文件:

    e2e.ti.com/.../8255.soc_5F00_rcm.h

    e2e.ti.com/.../8255.soc_5F00_rcm.c

    发布此消息、在 SDK 中重新构建库、然后重新构建应用。 这应该可以修复不正确的时钟。

    2.我们还发布了 AM261x v10.02 SDK、其中包含一些错误修复(包括上述错误修复)、以防您有兴趣查看这些错误修复。

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    很抱歉、响应延迟、导致我的 PC 操作系统被重新安装。

    我尝试了您建议的方法、问题已解决。

    我更新了 mcu_plus_sdk_am261x_10_00_01_10 上的 soc_crcm.h/c 和 enet_cpsw_am261x.syscfg.js 并重新构建 drivers_r5f。

    从闪存引导并运行代码、Wireshark 可以捕获 Rx 和 TX 消息。

    非常感谢!

    Ly