免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4613 | 回复: 8

lxt971的link status不成功 [复制链接]

论坛徽章:
0
发表于 2009-02-08 18:51 |显示全部楼层
10可用积分
lxt971的link status不成功  

at91sam9260的主芯片,物理层phy是lxt971。
开发板运行流畅,做了新板子,lxt971的状态寄存器的link status的值,在uboot驱动和kernel运行后,都是0,也就是没有链路。
link 和activlty led灯在uboot启动的时候亮了2次后就一直灭。在uboot驱动和kernel运行后,ping命令都不通。
通过示波器测量mdc,mdio,tx_clk,rx_clk的波形都和开发板一样。

phy先通过命令寄存器设置自协商,然后读取状态寄存器查看时候link status被置为1.但是不论等待多久,值总是0.

请问高手,还有什么情况会导致phy链路失败?

最佳答案

查看完整内容

你的Auto-Negotiation Complete bit(17.7)是0,说明配置并没有真正完成。17.12是1说明正在接受包,因为网络上不断会有广播包的,这个应该是正常的。建议你:1. 量一下PHY的时钟,看是否符合约定2. 检查一下两块板子的差别,看有没有少加上拉电阻之类的。3. 检查一下PHY reset和初始化的过程,这个你可以对比一下两块板子,做到一样即可。

论坛徽章:
0
发表于 2009-02-08 18:51 |显示全部楼层
你的Auto-Negotiation Complete bit(17.7)是0,说明配置并没有真正完成。
17.12是1说明正在接受包,因为网络上不断会有广播包的,这个应该是正常的。

建议你:
1. 量一下PHY的时钟,看是否符合约定
2. 检查一下两块板子的差别,看有没有少加上拉电阻之类的。
3. 检查一下PHY reset和初始化的过程,这个你可以对比一下两块板子,做到一样即可。

论坛徽章:
0
发表于 2009-02-09 14:20 |显示全部楼层
检查一下phy的reset是否正确?
仔细看看datasheet有没有什么要求

论坛徽章:
0
发表于 2009-02-09 14:31 |显示全部楼层
MDC,MDIO是OK,LXT971的ID已读出
PHY的复位是OK的,然后初始化出现的上述问题。

RXDV无效,因为这个时候还不能识别链路,不能收到包。

论坛徽章:
0
发表于 2009-02-09 14:41 |显示全部楼层
你原来的开发板,在初始化后读取BMSR中的link status的值是1吗?

我手头上的PHY的手册上有这么一个描述,你参考一下:

I know I have good link, but register 0x01, bit
2 “Link Status” doesn’t contain value ‘1’ indicating
good link.
A: This bit is defined by IEEE 802.3u Clause 22. It indicates
if the link was lost since the last time this register was
read. Its name (given by IEEE) is perhaps misleading. A
more accurate name would have been the “Link lost” bit.

你可以尝试多读几次。
或者看看你的PHY在0x10之后的地址还有没有link status的bit。

既然手头有一个能工作的开发板,多对比一下会比较方便一些。

论坛徽章:
0
发表于 2009-02-09 16:39 |显示全部楼层
刚才从网上down了一个lxt971的datasheet,大概看了一下。

address 17 bit 10(17.10)你可以读一下看看状态。

或者你可以不用Auto-Negotiation模式。
手工设置一下speed,看看link是否成功。

论坛徽章:
0
发表于 2009-02-10 08:59 |显示全部楼层
非常感谢xpl 的热心回复。
1 原来的开发板,在初始化后读取BMSR中的link status的值是1。证明link ok.
2 address 17 bit 10(17.10):在原来的开发板,register 17是0x5780。自己的板子 register 17是0x0100.
网线连接状态OK,反复实验都是以上结果。

奇怪的是register 17,bit12为何是1 ?
多次延时读取还是这样,是在没辙了,请教问题点在哪里呢?

注 lxt971 register 17:
17.13 Transmit Status
1 = LXT971A is transmitting a packet.
0 = LXT971A is not transmitting a packet.
17.12 Receive Status
1 = LXT971A is receiving a packet.
0 = LXT971A is not receiving a packet.

论坛徽章:
0
发表于 2009-02-10 12:02 |显示全部楼层
我怀疑也是由于Auto-Negotiation 未完成造成link down.

1 phy的时钟通过示波器量过,器测mdc,mdio,tx_clk,rx_clk的波形都和开发板一样
2 2块板子除去phy后面连接的transformer不同,其它地方都一样,没有少上拉,下拉。
3 9260uboot先reset,然后判断IsConnect,都和开发板一样。然后就是这步,phy_init,出现的问题。

现在是出问题的是第2版,相比第1版做了transformer的改动。
第2版采用开发板上的phy连接集成transformer的RJ45.
第1版采用开发板上的phy连接独立transformer,然后连接无Rtransformer的J45.


但是用第1版的phy的TPFIN/TPFIP,TPFON/TPFOP飞线到第2版phy后面的transformer,链路居然是通的。
    用第2版的phy的TPFIN/TPFIP,TPFON/TPFOP飞线到第1版phy后面的transformer,链路就是不通的。
麻烦朋友再指点一下,呵呵,TKS

[ 本帖最后由 againyuan 于 2009-2-10 12:06 编辑 ]

论坛徽章:
0
发表于 2009-02-10 14:51 |显示全部楼层
OK,找到问题所在,再次感谢xpl,还要感谢论坛,以及热心帮助的朋友们!
问题在于,phy和transformer连接的VCCA。
通过phy引出的VCCA连接transformer的pin7,导致问题所在。现在改成pin2,就OK了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP