在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 13859|回复: 19

[求助] 请教一个PHY芯片的问题,调试的时候出现的问题

[复制链接]
发表于 2014-7-11 19:06:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
我现在用的是xilinx系列的一个板卡,上面没有PHY芯片,所以我自行设计了一个扩展板,上面焊接有RJ-45网口和RTL8201CP的PHY芯片,当然上面还有其他的一系列电阻电容。利用的是xilinx上面的FMC连接器。现在焊接完成了,然后一直进行测试,测试的过程虽然很艰难,但还是基本调通了,用PC想xilinx FPGA板发送ping命令,是可以实现的。

      但现在唯一的一个遗留问题就是,在接收数据的时候,接收的时钟(PHY提供)rx_clk 是25Mhz,在该时钟的上升沿或者下降沿rx_data(3:0)为接收的数据,在多数情况下,随着rx_clk 触发沿的降临,rx_data(3:0) 传输半个字节的数据,但是事实上通过chipscope仿真软件的观察,大部分的数据接收都是正确的,也有的时候出现错误:如下图

异常时候的结果

异常时候的结果

     从图中大概可以看到,rx_data1 由F变成C的过程中竟然多了一个过渡的数据,可以看到,这是因为rx_data(0) 没有及时跟着rx_clk 的触发沿翻转导致的,而rx_data(3),rx_data(2),rx_data(1)则及时的翻转。
    经过多次的数据观测,这种情况出现的频率并不低,(只要出现这种情况,数据接收必然失真),而且某些情况下,rx_data(3),rx_data(2),rx_data(1) 也会出现翻转不及时。
   在ping测试过程中,有些时候测试不成功可能就是因为上面所讲的问题。
   这个原因是什么导致的呢?会不会是PHY芯片内部的问题。如果是PHY芯片内部的问题,但很多时候数据的接收都是没问题的。还是焊接的原因呢?最大的疑惑就是这种异常状况并非一直出现,大部分时间是好的?希望大家给我提供一点思路吧,我在这里谢谢了。
发表于 2014-7-11 22:03:09 | 显示全部楼层
额,不看不懂
发表于 2014-7-11 22:22:11 | 显示全部楼层
chipscope的采样时钟是什么
 楼主| 发表于 2014-7-11 23:52:54 | 显示全部楼层
回复 3# haitaox


    chipscope的采样触发信号是PHY_dv,也就是接收数据为有效的信号,该信号有效的时候,rx_data才有效。chipscope的采样时钟是以太网IP核与ARM之间的AXI总线的时钟信号是100MHz。也就是chipscope的每一个采样的点就是一个总线时钟的上升沿。
    总线时钟无法观测,所以引出clk1,这个时钟是总线时钟频率的一半,因此可以判定PHY的发送脉冲核接收脉冲是标准的25Mhz。
发表于 2014-7-13 21:42:50 | 显示全部楼层




   
你的采样数据是PHY_dv,最好用PHY_dv的时钟去采样该信号。你用的axi总线的时钟,肯定会有采不稳的状况
发表于 2014-7-15 14:31:59 | 显示全部楼层
回复 5# haitaox


   同意楼上的说法。PHY芯片的RX_CLK和数据都是由PHY芯片产生的,它们之间的逻辑关系应该是由PHY本身来保证的,所以我觉得问题应该不是出在这里。ChipScope的采样时钟应该要和被采样的数据同源,这样采样到的信号才是可正确观测的。
发表于 2014-7-15 21:06:24 | 显示全部楼层
以我多年网络PHY使用经验来看,这个问题是PHY_RXCLK上升沿采样还是下降沿采样的问题。一般的设计,RXD是用PHY_RXCLK驱动(可以参考PHY的说明书),从图中来看,RXD似乎是在PHY_RXCLK下降变化数据,MAC用PHY_RXCLK下降沿工作更好些。
过度数据是因为RXD是PHY_RXCLK驱动,由于内部路径延时不一样,用100MHz的异步始终采样肯定会先后采样到。这个并不是PHY数据错误。
发表于 2014-7-17 15:54:26 | 显示全部楼层
好!!!!
 楼主| 发表于 2014-8-10 13:49:04 | 显示全部楼层
回复 7# henryshen2000


    你好,现在网络的调试有了新的眉目。现在有一个问题没有解决。就是假使我用网线将板卡和电脑连接在一起的时候,我对板卡进行了1000次的ping测试。发现ping测试部分成功,而部分没有成功,细细的分析之后发现:网口的绿灯有时候亮,有时候灭。网口的绿灯亮的时候,电脑的本地连接显示已经启用,此刻的ping测试是可以成功的。灭的时候,电脑的本地连接显示电缆已拔出,此时的ping没有成功。电脑这边的网卡是没有问题的,网线也没有问题。于是,我运行了每隔一秒读取一次phy内部寄存器的程序(当然程序运行的时候,网口的绿灯也是时灭时亮,1秒左右更替一下),寄存器的内容也是不断变化的,有时候显示自动协商完成,100M连接已经建立,有时候显示自动协商没有完成,连接没有建立。
   phy芯片的ANE引脚(拉高,设置成自动协商模式),还有两个引脚拉高设置成了百兆全双工模式。
   请问一下,这个是不是phy芯片不断重启自动协商导致的呀?如果是,应该怎么解决呢?
   你的qq号多少?我一直在调试一个以太网的板卡,可能要请教您更多的问题,
发表于 2015-7-11 17:12:33 | 显示全部楼层
请教个问题,rtl8212芯片做LOOPBACK测试时,利用signaltap观察时发现总是会在rxd管脚,一帧数据的最后总为6bf,这是否正常???还有一个问题,RTL8212的网口板子,在FPGA内部做直通测试时,即P1口收到的直接甩给P0口,P0口收到的甩给P1口,同时连接两台电脑,发现交换电脑后,两台电脑ping不通,有碰到这问题的吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-28 21:45 , Processed in 0.037831 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表