hi:
我使用TMS320DM6467T连接DP83867IR芯片(ETH PHY),DM6467不能读取PHY的寄存器。测量发现,MDIO管脚电平总是被PHY拉低
不知道为什么会这样。在网上看到很多人遇到这个问题,但都没有给出解决方法。
static u16_t mii_phy_getReg( u32_t phynum, u32_t regnum )
{
{
MDIO_USERACCESS0 = 0 // Read Phy Id 1
| ( 1 << 31 ) // [31] Go
| ( 0 << 30 ) // [30] Read
| ( 0 << 29 ) // [29] Ack
| ( regnum << 21 ) // [25-21] PHY register address
| ( phynum << 16 ) // [20-16] PHY address
| ( 0 << 0 ); // [15-0] Data
| ( 1 << 31 ) // [31] Go
| ( 0 << 30 ) // [30] Read
| ( 0 << 29 ) // [29] Ack
| ( regnum << 21 ) // [25-21] PHY register address
| ( phynum << 16 ) // [20-16] PHY address
| ( 0 << 0 ); // [15-0] Data
while(MDIO_USERACCESS0 & 0x80000000)
{
}
return (MDIO_USERACCESS0 & 0xFFFF)
{
}
return (MDIO_USERACCESS0 & 0xFFFF)
}
程序会死在while循环处。
如果将DP83867的复位信号拉低,mii_phy_getReg()函数可以正确返回,返回值为0xFFFF.
Amy Luo:
您好,
参考下E2E论坛上的这个帖子:e2e.ti.com/…/717497
如果未能解决问题,您也可以在E2E论坛上咨询美国的工程师,谢谢。
Penghui Wei:
回复 Amy Luo:
Thanks a lot.