TI中文支持网
TI专业的中文技术问题搜集分享网站

AM6442: CPSW 使用RMII接口,如何令ENT1 PORT 运行在100Mbps的速度上? 在TRM中,我并未找到设置MAC PORT速度的相关配置说明。它是自适应10/100 Mbps?

Part Number:AM6442

硬件环境:

CPSW MAC ENT PORT1  连接  83826E,方式为RMII SLAVE MODE,外部晶振50M连接 AM6442的AA5引脚(即RMII_MHZ_50_CLK) 以及 83826的引脚9.

基本测试情况:

通过读取PHY寄存器0x468,可以确定PHY运行与RMII SLAVE MODE, 读取寄存器0x10,确定PHY处于100M 全双工 链接状态。

遇到的问题:

通过CPSW CPPI 转发数据到 ENT PORT1进行以太网帧数据传输,使用示波器抓取 PHY芯片引脚 23(TXEN)   PHY芯片引脚 24(TXD0)   PHY芯片引脚 25(TXD1) ,可以看到以太网帧 前导码、目的地址、源地址、随意写的数据、CRC (共82字节),TXEN脉宽为65.6us ,即速度是10Mbps。  

我猜测是ENT PORT1 发送速度仅有10M。  但是我却找不到合适的配置,令其修改为100M。

目前CPSW与速度相关的配置如下:(是否还存在其余配置 可以设置端口速度?)

令 寄存器(0x08022330)  bit7 为 0:10/100 mode     ;    bit17 为 0:不强制进入千兆

Shine:

请问运行的是哪个demo? 是哪个版本的SDK?

,

s s:

你好,我是基于C:\ti\mcu_plus_sdk_am64x_09_00_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);

②令 寄存器(0x08022330)  bit7 为 0:10/100 mode     ;    bit17 为 0:不强制进入千兆

③配置RMII引脚:

,

Shine:

感谢您对TI产品的关注!由于问题比较复杂,已将您的问题发布在E2E英文技术论坛上,由资深的英文论坛工程师为您提供帮助。 您也可以点击下帖链接了解进展:https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1329336/am6442-configure-ent1-port-to-100mbps

,

Shine:

能否把编译的log分享一下?请看下面e2e工程师的回复。

Can you ask customer to build example in debug mode and share UART logs ?

,

s s:

你好,我这边并无日志能够提供,原因如下:我是基于C:\ti\mcu_plus_sdk_am64x_09_00_00_31\examples\networking\enet_layer2_cpsw\am64x-evm 该工程,摘抄了里边所有相关的寄存器配置 以及 DMA配置,结合手册,完成一份不使用 syscfg生成 的 CPSW驱动代码, 该驱动代码在 EVM板子上,已验证了RGMII 千兆 收发的验证;   目前是想将 驱动代码配置成RMII模式,结果发现速度为10Mbps,无法设置为100Mbps的问题。  由于是自己写的驱动代码,并无日志提供。

但是我可以提供出现问题(只有10M)时,CPSW 相关统计计数 的寄存器值:

/*CPPI 收到的正常帧数*/ *(int*)0x0803a000 = 958

/*CPPI 收到的广播帧数*/ *(int*)0x0803a004 = 958

/*CPPI 接收和发送65-127帧的数*/ *(int*)0x0803a06c = 958

/*CPPI 接收和传输的总字节数*/ *(int*)(0x0803a080) = 70892

/*port 1 收到的分片帧帧数*/ *(int*)0x0803a224 = 741

/*port 1 发送的好帧数*/ *(int*)0x0803a234 = 958

/*port 1 发送的好帧广播数*/ *(int*)0x0803a238 = 958

/*port 1 发送所有好帧的字节数*/ *(int*)0x0803a264 = 70892

/*ENET TX优先级0包计数*/ *(int*)0x0803a380 = 958

/*ENET TX优先级0 字节总数*/ *(int*)0x0803a3a0 = 70892

填写的以太网帧数据如下:(除去CRC 和 前导码,为70字节)

tx_buff[0][0] = 0xff; tx_buff[0][1] = 0xff; tx_buff[0][2] = 0xff; tx_buff[0][3] = 0xff; tx_buff[0][4] = 0xff; tx_buff[0][5] = 0xff; memcpy(&tx_buff[0][6],macAddr,6);

memset(&tx_buff[0][12],1,70-12);

,

s s:

,

s s:

你好,非常感谢您的回答。 但是为避免 沟通存在遗漏,我重述一下最主要的问题:如何令RMII工作在 100M模式。

以下是TRM截图:我找不到合适操作令RMII工作于100M模式。

,

s s:

我将PHY配置成10M后, PC端电脑可以抓取到发送的帧了:确实是我在MCU发送的以太网帧,这里应该可以表名PHY的配置应该没问题,问题仅在于CPSW 的RMII为什么工作在 10M模式。

赞(0)
未经允许不得转载:TI中文支持网 » AM6442: CPSW 使用RMII接口,如何令ENT1 PORT 运行在100Mbps的速度上? 在TRM中,我并未找到设置MAC PORT速度的相关配置说明。它是自适应10/100 Mbps?
分享到: 更多 (0)