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.
您好、Champs:
硬件:PHY 83826E
SW: MCU_PLUS_SDK_am64x_09_00_00_31
硬件连接:
CPSW MAC ENT PORT1作为 RMII 从模式连接到83826E、外部晶体50M 连接 AM6442至 AA5引脚(即 RMII_MHz_50_CLK)和83826引脚9
测试:
通过读取 PHY 寄存器0x468、 可显示 PHY 以 RMII 从模式运行、并读取寄存器0x10、可看到 PHY 处于100M 全双工链路状态。
遇到的问题:
通过 CPSW CPPI 将数据转发到 ENT 端口1、以进行以太网帧数据传输。 使用示波器捕捉 PHY 芯片引脚23 (TXEN ) PHY 芯片引脚24 (TXD0) PHY 芯片引脚25 (TXD1)、并查看以太网帧前导码、目标地址、源地址、随机数据、CRC (总计82字节)、TXEN 脉冲宽度65.6us (即速度10Mbps)。
客户猜测 ENT Port1仅发送10M。 但他找不到将其更改为100m 的正确配置。
当前与 CPSW 速度相关的配置如下:(是否有任何其他可设置端口速度的配置?)
将寄存器(0x08022330)的 bit 7设置为0:10/100模式;bit 17为0:不强制进入千兆位
客户正在 使用基于 C:\ti\mcu_plus_sdk_am64x_09_00_31\examples\networking\enet_layer2_cpsw\am64x-evm 的工程。 RGMII 模式可在 EVM 上运行。 但在项目和硬件板中、需要的是 RMII 模式、因此他修改了一些配置以适合 RMII 模式。
①
SoC_controlModuleUnlockMMR (SOC_DOMAIN_ID_MAIN、1);//μ 偏移量为4044,因此它落在分区1
*(vuint32_t*)(0x43004044)= 1;//cpsw0-port1 2选择RGMII 1选择RMII
*(vuint32_t*)(0x43004048)= 1;//cpsw0-port2 2选择RGMII 1选择RMII
SoC_controlModuleLockMMR (SOC_DOMAIN_ID_MAIN、1);
② SET (0x08022330) bit7为0:10/100模式 ;bit17 为0:不强制进入千兆
③配置 RMII:
谢谢
此致
闪耀
尊敬的 Shine:
感谢您的提问。
您在这里参考的是哪个 SDK 示例?
此致
阿什瓦尼
尊敬的 Ashwani:
非常感谢。
客户正在 使用基于 C:\ti\mcu_plus_sdk_am64x_09_00_31\examples\networking\enet_layer2_cpsw\am64x-evm 的工程。
谢谢
此致
闪耀
尊敬的 Shine:
C:\ti\mcu_plus_sdk_am64x_09_00_31\examples\networking\enet_layer2_cpsw\am64x-evm[/报价]您能否让客户在调试模式下构建示例并共享 UART 日志?
此致
阿什瓦尼
尊敬的 Ashwani:
非常感谢。
下面是客户的回复。
大家好、我这边没有日志。 原因如下:对于此项目、我基于 C:\ti\mcu_plus_sdk_am64x_09_00_31\examples\networking\enet_layer2_cpsw\am64x-evm。 所有相关的寄存器配置和 DMA 配置均已复制。 结合手册、完成在没有 syscfg 的情况下生成的 CPSW 驱动程序代码、在 RGMII 千兆位收发器的 EVM 板上验证该代码;当前试图将驱动程序代码配置为 RMII 模式、结果发现速度为10Mbps、无法设置为100Mbps。 不提供日志、因为它是自行编写的驱动程序代码。
但当存在问题时、我可以提供 CPSW 相关统计计数的寄存器值(仅10M):
/* CPPI 接收到的帧的正常数量*/*(int*) 0x0803a000 = 958
/* CPPI 接收的广播帧*/*(int*) 0x0803a004 = 958
/*接收和发送的65-127帧的 CPPI 编号*/*(int*) 0x0803A06c = 958
/*接收和发送的 CPPI 总字节*/*(int*)(0x0803A080)= 70892
/*端口1接收到的片段帧数*/*(int*) 0x0803a224 = 741
/*发送端口1的正常帧*/*(int*) 0x0803a234 = 958
/*端口1发送的正常帧广播数*/*(int*) 0x0803A238 = 958
/*发送所有正常帧的端口1字节*/*(int*) 0x0803a264 = 70892
/* ENET TX 优先级0数据包计数*/*(int*) 0x0803a380 = 958
/* ENET TX 优先级0字节总计*/*(int*) 0x0803a3a0 = 70892
以太网帧数据的填充方式如下:(70字节、不包括 CRC 和前导码)
TX_BUFFER[0][0]= 0xff;
TX_BUFFER[0][1]= 0xff;
TX_BUFFER[0][2]= 0xff;
TX_BUFFER[0][3]= 0xff;
TX_BUFFER[0][4]= 0xff;
TX_BUFFER[0][5]= 0xff;
memcpy&TX_buffer[0][6]、macaddr、6);
Memset&TX_BUFFER[0][12]、1、70-12);
为了避免错过任何通信、我想重复一个主要问题:如何使 RMII 在100M 模式下工作。
这是 TRM 的屏幕截图:我找不到适合 RMII 在100M 模式下运行的操作。
我将 PHY 配置为10M 后、PC 可以抓取传输的帧:这实际上是我在 MCU 中发送的以太网帧、这里的表名 PHY 配置应该没问题、唯一的问题是为什么 CPSW 的 RMII 在10M 模式下工作。
谢谢
此致
闪耀
尊敬的 Ashwani:
对此有什么建议吗?
客户正在等待我们的回复。
谢谢。
此致
闪耀
尊敬的 Shine:
很抱歉我度假时响应出现延迟。
请允许我花点时间检查一下、然后再与您联系。
此致
阿什瓦尼
尊敬的 Shine:
您能否共享设置详细信息:
1. CPSW 端口连接了什么?
2.另一侧自动协商是打开还是关闭?
此致
阿什瓦尼
尊敬的 Ashwani:
很抱歉回复延迟。
下面是客户的回复。
CPSW 连接到 RMII1。
2.如上图所示,phy IC 是 DP83826E, RMII 从模式,自动协商,但仅使用下面的100M 模式
如果 PHY 更改为10M、则通信正常。
该板连接到 PC。
谢谢
此致
闪耀
尊敬的 Shine:
PHY 更改为10M
我认为10M 不支持开箱即用。
您可以在加载应用时共享 UART 日志吗?
您还可以共享 PHY 寄存器值?
是否能够使用 MDIO 进行 PHY 通信?
此致
阿什瓦尼