您好:
我采用F28M35+DP83822设备,采用MII协议,测试时通过MDIO读取link状态,物理层link已建立。通过UIP协议(轻型TCP/IP),设置了MAC地址,和IP地址。在电脑主机设置同一网段和掩码,ping开发板设备,提示“无法访问目标主机”,ping不通。
观察ETHNET中断接收函数,发现从未进过中断,期间电脑主机一直在ping,发数据包。
请问各位前辈,咨询下问题排查思路。
附电路原理图。
读取的DP83822寄存器状态如下:
BMCR:0x3100(100 Mbps,Enable Auto-Negotiation,Full-Duplex)
BMSR:0x786d(Auto-Negotiation process completed,Valid link established)
PHYSTS:0x0015(Auto-Negotiation complete,Full-Duplex mode,100 Mbps mode,Valid link established)
RECR:0x0000
PHYCR:0X8C21 (Auto-MDIX Enable,100Base-TX Full-Duplex link is active,PHY Address 00001)
1、测量供电电压、时钟、复位引脚正常。DP83822的PHY地址选择默认0X01。
2、RXCLK为2.5MHz,TXCLK为2.5MHz,mdc时钟为2.2MHz。
3、选择F28M35的官方例程,enet_uip工程。
Amy Luo:
您好,
R89建议使用数据手册推荐的4.87-kΩ ±1%电阻,该电阻值决定了内部偏置电流,与推荐值的偏差可能使某些部件的电气规格超出IEEE规格,请下面客户的经验可知,这个电阻会影响analog loopback:e2e.ti.com/…/dp83822h-rbias-resistor-function-consult
e2e.ti.com/…/dp83822i-bias-resistor-value
,
Kailyn Chen:
您好,看这几个状态寄存器,link是没问题的,但是100Mbps, MII mode 的话,TXCLK和RXCLK都是25Mhz输出才对,您现在测试为10MHz的话,对应的速率为10Mbps。
另外,100Base-TX Full-Duplex 模式您是通过寄存器配置的,还是通过strap pin配置的?因为目前看您的电路,看不到strap pin引脚接的情况。
,
user6326595:
感谢您的回复,目前,网线接通之后,通过自协商,RCLK和TCLK输出为25MHz,原来输出2.5M是因为网口电路没联通。MII-mode是通过STRP-pin来配置的,上电或复位自动识别,均为default状态,strap引脚配置均为OPEN,没接上拉或者下拉。目前情况,测量MII_RX[3:0],有脉冲信号,RX0常态低电平,有高电平脉冲,RX[3:1]常态高电平,有低电平脉冲。DSP的MACDATA寄存器数值有变化,但是始终没有触发接收中断。
,
Kailyn Chen:
您好,IP地址没有问题吧?另外,再读下 0x0012 MII Interrupt Status Register以及0x0011 PHY Specific Control Register这两个寄存器看下呢。
另外,参考7.21 power up timing,用示波器测量下83822的上电时序是否没问题。
,
user6326595:
谢谢您对问题的关注。
IP地址设置的同一网段,设备端192.168.1.169,掩码255.255.255.0;PC电脑端192.168.1.100 ,掩码255.255.255.0
PHYSCR:0x0108(5 nibbles FIFO,Normal operation is 1 logic and during interrupt is 0 logic,Disable event based interrupts)
MISR1 :0x6400()
MISR2 :0x2800()
示波器观察上电时序正常。
网络层用的UIP协议,同一工程代码,DSP上重新分配引脚,在另一开发板(用的另一不同厂家的PHY芯片)上可以实现ping通,请问,DP83822上电需要手动配置好,才能正常工作吗?您这里是否有DP83822的例程或者program编程指导资料?
,
user6326595:
谢谢您的回复!根据您的建议,更换了偏置引脚的接地电阻为4.87K,优化了设计。但是帖中的问题还是存在。
,
Kailyn Chen:
您好,上电时序正常,状态寄存器看起来link也都没问题。其他厂家的PHY能正常工作,代码应该是没问题的,换了DP83822的话,更换的也就是Vendor ID和PHYID, 对应的寄存器0x0002和0x0003, 再看下呢。
,
Kailyn Chen:
另外,DP83822的上电时序正常,不需要初始化,不需要手动配置,就能正常工作的。
很抱歉没有参考例程或编程资料可以参考,其他PHY能正常工作,我认为您的现有代码是没问题的,我只是根据实现不同功能,修改相应的寄存器就可以。