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

AM4376的网口数据接收问题

各位大大好:

        我有个项目需要用到AM4376 GEMAC_CPSW的两个网口,电路板是自己做的,系统平台ucos,代码参考了AM43xx_StarterWare,但有修改,计划移植lwip协议栈,硬件接口上是按照GMII方式接的,目前遇到的问题是网口初始化完成后,数据可以正常发送(通过WireShark可以抓到),并能正常进入3PGSWTXINT0中断,但是数据接收有问题了……

        目前的现象是,每次使用电脑ping电路板时能看到CPSW_STATS下的Good Rx Frames和Broadcast Rx Frames的数据递增,但是不能进入3PGSWRXINT0中断,3PGSWTXIHR0和3GPSWMISC0的中断使能没开,检查了相关寄存器也没发现问题啊,同时没有找到其他资料,所以不知道问题可能出在哪里,各位路过的大神不知道能不能给点建议呢?

yongqing wang:

可以参考TI 提供的AM4376 RTOS系统中的相关内容

Shine:

请看一下下面的寄存器有没有使能?Cn_RX_STAT状态寄存器是多少?

The following steps will enable the receive packet completion interrupt.
• Enable the required channel interrupts of the DMA engine by setting 1 to the appropriate bit in the RX_INTMASK_SET register.
• The receive completion interrupt(s) to be routed to RX_PULSE is selected by setting one or more bits in the receive interrupt enable register Cn_RX_EN. The masked interrupt status can be read in the Receive Interrupt Masked Interrupt Status (Cn_RX_STAT) register.

niucheng:

回复 yongqing wang:

你好,非常感谢你给的建议!我之前有下载了官网提供的RTOS部分代码,只发现uia下的com_ti_uia_example_37.rpojectspec的工程名字是stairstepEthernet,但是很遗憾这个工程用CCS V9打不开,提示是“Device cannot be 'null' and must be a vaild and supported device”,不知道是我操作不对还是其他原因;我尝试找到了对应的cfg文件,发现这个应该是EVM6472的工程,并且并没有相关内容,所以我怀疑官方的RTOS中将这部分内容编译成了库文件,这边并不能看到代码,而我们目前使用的是IAR,所以用不了现成的库文件……不知道还有没有其他建议?

niucheng:

回复 Shine:

你好,非常感谢您的回复! 我检查了一下,C0_RX_EN已经设置,目前只用了C0,C1和C2没有配置,RX_INTMASK_SET也已经设置了,但是C0_RX_STAT读出来的位貌似不对,不知道我那个寄存器设置的有问题,以下是我读出来的部分寄存器的值,麻烦你能帮我看看那个没有设置好么? 谢谢~ Register ————————————————Value CPSW_ALE_CTRL —————————0x80000000 CPSW_ALE_PRESCALE ——————-0x0001E848 CPSW_ALE_PORTCTL_0 —————–0x00000003 CPSW_ALE_PORTCTL_1 —————–0x00000003 CPSW_TX_CTRL—————————- 0x00000001 CPSW_TX_TEARDOWN ——————0x00000000 CPSW_RX_IDVER————————– 0x00180109 CPSW_RX_CTRL————————— 0x00000001 CPSW_RX_TEARDOWN —————–0x00000000 CPSW_DMACTRL————————– 0x00000000 CPSW_DMASTS —————————-0x80000000 CPSW_EMCTRL —————————-0x00000000 CPSW_TX_INTSTAT_RAW ————–0x00000000 CPSW_TX_INTSTAT_MASKED ——–0x00000000 CPSW_TX_INTMASK_SET ————–0x00000003 CPSW_TX_INTMASK_CLR ————–0x00000003 CPSW_CPDMA_IN_VECTOR ———–0x00000000 CPSW_CPDMA_EOI_VECTOR ——–0x00000002 CPSW_RX_INTSTAT_RAW————– 0x00000000 CPSW_RX_INTSTAT_MASKED ——–0x00000000 CPSW_RX_INTMASK_SET ————–0x000000FF CPSW_RX_INTMASK_CLR ————–0x000000FF CPSW_SL_IDVER ————————–0x00170113 CPSW_SL_MACCTRL ——————–0x00000020 CPSW_SL_MACSTS ———————–0x80000000 CPSW_STATERAM_RX0_HDP ——–0x8805DD80 CPSW_STATERAM_RX1_HDP ——–0x8805DF60 CPSW_STATERAM_RX0_CP ———-0x00000000 CPSW_STATERAM_RX1_CP ———-0x00000000 CPSW_WR_CTRL ————————-0x0000000A CPSW_WR_INT_CTRL——————- 0x00000000 CPSW_WR_C0_RX_THRESH_EN —0x00000000 CPSW_WR_C0_RX_EN ——————0x000000FF CPSW_WR_C0_TX_EN ——————0x000000FF CPSW_WR_C0_MISC_EN—————- 0x00000000 CPSW_WR_C0_RX_THRESH_STAT—0x00000000 CPSW_WR_C0_RX_STAT —————0x00000000 CPSW_WR_C0_TX_STAT —————0x00000000 CPSW_WR_C0_MISC_STAT ———–0x00000000 CPSW_WR_RGMII_CTL —————–0x00000000

yongqing wang:

回复 niucheng:

RTOS这部分底层代码没研究,但是RTOS大部分代码都是有源码的,建议详细看看

赞(0)
未经允许不得转载:TI中文支持网 » AM4376的网口数据接收问题
分享到: 更多 (0)