This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
TI的DM81xx系列高性能视频SOC, 以其强大的处理能力,被越来越多的客户使用。本文从硬件连接以及软件驱动调试等方面,详细描述了TI 高性价比10M/100M PHY(DP83848)在DM81XX平台上的使用。
1. RMII模式DM81XX-DP83848硬件连接框图:
2. 硬件连接注意事项:
1)使用RMII时,DM81XX RMII_REFCLK可以选择输出50MHz参考时钟给DP83848K,可以省掉晶振。如果采用MII接口,则需外部25Mhz晶振。
2)RX_DV上拉,确保PHY工作于RMII模式。
3)MDIO需要使用1.5K 上拉。
4)检查PHY地址配置(使用2.2K上拉或者下拉),请使用0x1及以上的地址,地址0x0对应于DP83848K有特殊含义,使芯片进入MII 隔离模式的。
5)TX/RX信号使用50 欧姆上拉。
3. PCB Layout注意事项:
1)除了MDIO/MDCLK,其他信号线要作等长处理。
2)EMAC到PHY之间的走线距离要小于2 英寸。
4. 软件驱动修改注意事项:
DM81XX的PSP包对于PHY这块使用了通用的驱动,软件配置相对简单,建议在uboot下进行PHY的驱动硬件调试。请逐一检查下面几项(u-boot与kernel同样适用):
1)确认所选择的PIN脚的复用关系。
2)配置RMII_REFCLK_SRC寄存器,选择使用内部输出50MHz时钟,还是使用外部时钟50MHz,本例中该寄存器配置为0x4。
3)配置GMII_SEL寄存器,本例中配置0x5,使能Port0的RMII模式。
4)配置MAC_CONTROL寄存器为0x8020。
5)检查PHY_ID的配置。
5. 小贴士
通过打印PHY的寄存器,以便确认其工作状态以及配置,以下是DP83848正常工作于RMII模式下的寄存器值,用于调试参考:
PHY_BMCR=0x3100
PHY_BMSR=0x786d
PHY_PHYIDR1=0x2000
PHY_PHYIDR2=0x5c90
PHY_ANAR=0x1e1
PHY_ANLPAR=0xc1e1
PHY_ANER=0xf
PHY_ANNPTR=0x2801
PHY_PHYSTS=0x15
PHY_LBR=0x21
PHY_PHYCTRL=0x8023
你好,Louis,
以下这个连接器是必须的吗?
我目前遇到的问题如下:
I'm using rmii interface connected to the phy dp83848j. And i have got the id of dp83848j(the value is 0x80017) .
After that , the Auto-Negotiation is Successful. Transfer Mode : 100 Mbps Full Duplex.
PHY link verified for Port 1.
But i can not ping the board from PC.
I'm using static IP .
lwipIfPort1.ipAddr = 192<<24 |168<<16 | 1<<8 | 200;
lwipIfPort1.netMask = 255<<24 |255<<16 | 255<<8 | 0;
lwipIfPort1.gwAddr = 192<<24 |168<<16 | 1<<8 | 1;
lwipIfPort1.ipMode = IPADDR_USE_STATIC;
when i set(CONTROL_GMII_SEL = 0xC5; // RMII1 clock sourced from pin, use RMII mode),
I can test pad RXD_1, RXD_0 have 50MHz rate data infor.
The value of DP83848J's registers is as following:
i=0x0, data=0x3100
i=0x1, data=0x786d
i=0x2, data=0x2000
i=0x3, data=0x5c90
i=0x4, data=0x1e1
i=0x5, data=0xc5e1
i=0x6, data=0xd
i=0x7, data=0x2801
extended i=0x10, data=0x6e15
extended i=0x11, data=0x0
extended i=0x12, data=0x0
extended i=0x13, data=0x0
extended i=0x14, data=0x0
extended i=0x15, data=0x0
extended i=0x16, data=0x100
extended i=0x17, data=0x21
extended i=0x18, data=0x0
extended i=0x19, data=0x8001
extended i=0x1a, data=0x904
extended i=0x1b, data=0x0
extended i=0x1c, data=0x0
extended i=0x1d, data=0x6011
I found that the value of the phy's register PHYSTS (addr:0x10) was 2e15 sometimes. That seems that AUTO-MDIX is not stable.But I can not ping the both case either.
烦请帮忙解决下这个问题。
我们用DM6467和DP83848I通信,配置成10M模式 ,就可以 通信,100M的就通信不了。网上还有其他人问DP83848 100M不通的问题,但不一定是跟DM系列的芯片一起使用。请问从哪里入手检查