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

C6455 EMAC开发问题【紧急求助】

DSP接收PC发送的以太包,但是DSP端一直接收不到数据,查看寄存器RXGOODFRAMES一直为0,但是寄存器RXFRAGMENTS却有数据,同时NETOCTETS寄存器也有值。给我的感觉是,数据包进来了,但是不知道为何DSP接收到了很多碎片,请问这是什么问题呢?

之前这一块通路还是好的,但是现在突然就不好了,通过示波器观察MII接口的TXCLK,TXEN,TXD,RXCLK,TXDV,RXD都没看到异常。

Andy Yin:

whisper.wind 您好,

由于之前的测试通路是好的,所以我觉得可以重点比较确认一下前后的测试差异:

1. 测试的硬件链接及配置;

2. 相关发包的数据及软件等。

从user guide来看,如果收到的包都是RXFRAGMENTS的话,说明收到的包大size小于64B,且存在CRC error,alignment及error code,请重点查一下这一块。

另外建议重启环境进行一下测试,谢谢。

whisper.wind:

回复 Andy Yin:

谢谢Andy!

硬件的连接和配置没有变化,我担心某些元器件损坏,所以从C6455到PHY到RJ45这个链路上的所有元器件我都重新换了一遍,问题依然存在。

我PC端发送的包的size均是大于64B,唯一让我觉得怀疑的就是,DSP接收到的包发生了破坏,但是现在不知道采用什么样的方法来验证这一点。

另外,DSP发送数据包,PC一样接收不到,但是DSP发送寄存器TXGOODFRAMES的数值是正常的,这个也很奇怪。

重启环境是什么意思?我使用的是XDS560PLUS Emulator,望不吝指教,谢谢

King Wang:

回复 whisper.wind:

whisper.wind 您好:

TXGOODFRAMES和RXGOODFRAMES能统计到进出EMAC的报文,RXFRAGMENTS统计了报文错误的情况,一般是CRC错(链路信号不稳定)和包长小于(64)等的非正常包。

从统计寄存器情况来看应该是Ethernet传送中间信号问题,不过这个现象不好确定。

我建议你可以试试EMAC Loopback模式,如果Loopback模式能够测试通过,那么再仔细检查下是否链路中间有什么问题。

谢谢!

whisper.wind:

回复 King Wang:

Thanks,  King Wang!

我也是怀疑ethernet传输不稳定造成的,只是没有很好的方法去检测,我用示波器观察了MII接口的TX各路信号和RX各路信号,只从信号表象来看,也没发现明显异常。

另外,如果EMAC收到了错误的报文,我是否能够看到出错的以太包?也就是说RXFRAGMENTS寄存器有值的情况下,能否观察到以太包?

EMAC loopback模式,我试试,如果这个测试通过,应该可以排除EMAC本身的问题,是么?

我使用的是TI提供的EMAC CSL开发包,没有使用NDK。

Andy Yin:

回复 whisper.wind:

whisper.wind您好,

EMAC是支持配置将错误的数据包保存到相应的memory的,具体还请看看user guide。

如果loopback没有问题的话说明EMAC收发包应该是没问题。

确认两点:

1. 请问DSP与PC链接中是否存在其他的switch硬件;

2. 跟之前相比,处理硬件更新之外,软件是否有变化。

谢谢。

whisper.wind:

回复 Andy Yin:

thanks Andy!

如果要查看接收出错的以太包,是需要使能RXCEFEN,是么?

1. 请问DSP与PC链接中是否存在其他的switch硬件?  

 硬件中的链路是: DSP—PHY(LXT971A)—-RJ45(内含1:1 transformer)—- cross over cable—–网卡(PC)

2. 跟之前相比,处理硬件更新之外,软件是否有变化。

 板子的硬件只是更新了元器件,包括PHY和RJ45,没有任何原理图的改动。  软件没有做任何变化,我就是拿之前测试通过时候的软件来测, 发现得这个问题。

thanks!

whisper.wind:

回复 whisper.wind:

to Andy and King :

我刚刚使能了RECEFEN,这样DSP接收到的数据包即便出错了,也可以存储在内存里。通过观察,发现一个比较有规律的现象,两位能否帮我看看问题出在什么地方?

接收到的以太包中,有数据丢失的现象,而且总是会接收一段正确的数据,丢失10个byte,再接收一段正确的数据,又丢失了10byte。 一个完整的以太包中,总是断断续续的丢数,但是每次丢数都丢10个byte。但是没丢的接收到的数据又是正确的。

这个问题太奇怪了,想不通会是什么问题。

希望两位能指点一下,谢谢!

Andy Yin:

回复 whisper.wind:

whisper.wind 你好,

建议试试DSP EMAC loopback功能,从而定位是否DSP出的问题,如果DSP EMAC存在问题,loopback模式应该能复现上述问题;同时可以怀疑一下PHY的可能性问题。我们可以一步步进行排查,谢谢!

whisper.wind:

回复 Andy Yin:

thanks Andy!

我今天会测试EMAC loopback模式,不过EMAC loopback模式的程序没有调通。

请问,Andy, EMAC loopback和PHY loopback 在实验时候分别要注意些什么?

谢谢!

whisper.wind:

回复 whisper.wind:

to Andy:

EMAC loopback 模式是正常的, 发送数据包,和接收数据包能够对上,没有出现接收丢数的情况。

赞(0)
未经允许不得转载:TI中文支持网 » C6455 EMAC开发问题【紧急求助】
分享到: 更多 (0)