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

为什么dp83tc811r 的BMSR寄存器的值为0x0065?

疑问:为什么dp83tc811r 的BMSR寄存器的值为0x0065?

在什么情况下会导致该现象?

user6054146:

现在能link上,为什么会出现不能传输数据的问题呢?

Kailyn Chen:

您是使用自动协商了吗? 因为这个状态寄存器的bit3=0 ,但是bit 5=1 自动协商完成,所以二者矛盾。
另外,您配置的是工作在什么模式,full duplex还是half duplex, 100Base TX还是10Base-T? 因为这里显示的不管什么模式,都没能够正常运行,所以没法传输数据。

user6054146:

回复 Kailyn Chen:

1、我没有对该PHY进行其它的配置,我仅操作了软件复位。

2、你说的工作模式我也没进行设置,有可能是硬件进行设置的吗?

Kailyn Chen:

回复 user6054146:

可通过RX_D3的输出来判断是full duplex还是half duplex。

 RMII mode还是MII mode是通过配置寄存器xMII_CTRL 的bit 5 来选择是哪种模式。

您目前是上电进行复位之后,只进行了软件复位。

相应的寄存器都没有进行配置是吗?

user6054146:

回复 Kailyn Chen:

是的,我只进行了软件复位。其它寄存器都没有进行配置。
RMII模式还是MII模式,我们是通过硬件进行选择的。我读出xMII_CTRL寄存器的bit5位,是MII模式。

Kailyn Chen:

回复 user6054146:

有做过自检BIST测试吗?先看下内部电路测试是否pass。 因为您的一些寄存器都没有进行配置,所以还是要一点点来分析问题出现在哪里,比如TDR寄存器bit 15 默认值是diable cable diagnostic,所以我们可以将其enable,看下不能通信的原因是否来自于cable。
dp83tc811r有一个诊断Tool,在datasheet上的8.3.3 Diagnostic Tool Kit也有介绍,在产品主页上也能下载到这个Tool以及应用手册,可以借助于它来看下是哪里的问题。
www.ti.com/…/technicaldocuments

user6054146:

回复 Kailyn Chen:

我读取了一部分寄存器,你能帮我分析一下吗?
网口不接线前的寄存器值
BMCR= 00002100
BMSR= 00000061
PHYID1= 00002000
PHYID2= 0000a253
TDR_AUTO= 00002000
INT_TEST= 0000010b
INT_STAT1= 00004000
INT_STAT2= 00004000
FCSCR= 00000000
RECR= 00000000
BISTCR= 00000100
xMII_CTRL= 00004041
INT_STAT3= 00000810
BICTSR1= 0000007d
BICTSR2= 000005ee
TDR= 00000000
PHYRCR= 00000000
LSR= 000005e1
TDRR= 00000000
TDRLR1= 00000000
TDRLR2= 00000000
TDRPT= 00000000
AUTO_PHY= 0000005a
PWRM= 00000000
SNR= 000000e5
SQI= 00000000
LD_CTRL= 00001020
LDG_CTRL1= 0000000a
DLL_CTRL= 00000077
ESDS= 00000000
LED_CFG1= 00002610
xMII_IMP_CTRL = 00000410
IO_CTRL1= 00000000
IO_CTRL2= 00000001
STRAP= 000003c0
LED_CFG2= 00000040
PLR_CFG= 00000000
MON_CFG1= 00000002
MON_CFG2= 000000a2
MON_CFG3= 00007007
MON_STAT1= 00000002
MON_STAT2= 00001121
PCS_CTRL1= 00001078
PCS_CTRL2= 00000a05
LPS_CTRL2= 00000a00
INTER_CFG= 00000001
LPS_CTRL3= 00000014
JAB_CFG= 0000044c
网口接线后的寄存器值
BMCR= 00002100
BMSR= 00000065
PHYID1= 00002000
PHYID2= 0000a253
TDR_AUTO= 00002000
INT_TEST= 0000010b
INT_STAT1= 00000000
INT_STAT2= 00004000
FCSCR= 00000000
RECR= 00000000
BISTCR= 00000100
xMII_CTRL= 00004041
INT_STAT3= 00000810
BICTSR1= 0000007d
BICTSR2= 000005ee
TDR= 00000000
PHYRCR= 00000000
LSR= 000075ff
TDRR= 00000000
TDRLR1= 00000000
TDRLR2= 00000000
TDRPT= 00000000
AUTO_PHY = 0000001a
PWRM= 00000000
SNR= 0000013c
SQI= 0000034b
LD_CTRL= 00001020
LDG_CTRL1 = 0000000a
DLL_CTRL = 00000077
ESDS= 00000000
LED_CFG1 = 00002610
xMII_IMP_CTRL= 00000410
IO_CTRL1 = 00000000
IO_CTRL2 = 00000001
STRAP= 000003c0
LED_CFG2 = 00000040
PLR_CFG= 00000000
MON_CFG1 = 00000002
MON_CFG2 = 000000a2
MON_CFG3 = 00007007
MON_STAT1 = 00000003
MON_STAT2 = 00000121
PCS_CTRL1 = 00001078
PCS_CTRL2 = 00000a05
LPS_CTRL2 = 00000a00
INTER_CFG = 00000001
LPS_CTRL3 = 00000014
JAB_CFG= 0000044c
我的疑问:
INT_STAT1、INT_STAT2、INT_STAT3为什么中断状态寄存器有值?
MON_STAT2、MON_STAT1这两个寄存器的值的意义。
AUTO_PHY寄存器的值在接入网线时为何会改变?

赞(0)
未经允许不得转载:TI中文支持网 » 为什么dp83tc811r 的BMSR寄存器的值为0x0065?
分享到: 更多 (0)