主题: 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