您好:
现在使用TMS320C6474芯片时有个问题一直很困惑,在CCS3.3安装目录下有一些例程,CCS3.3\boards\evmc6474_v1\tests\emac中,有两个问题,具体如下“
1、在phy.c的文件中有如下程序:
Uint16 phy_getReg(int phynum, int regnum)
{
Uint16 value;
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 ;
while( MDIO_USERACCESS0 & 0x80000000 ); // Wait for Results
value = MDIO_USERACCESS0;
return value;
}
其中regnum和phynum分别代表寄存器地址和phy地址,是吧?可是在数据手册中找不到相关说明,可以提供相关说明或资料?
2、
phy_setReg(0xe, 26, 0x47); // Set PHY port 6 SERDES to 0.7V swing
phy_setReg(0xd, 26, 0x47); // Set PHY port 5 SERDES to 0.7V swing
phy_setReg(0x0e, 0, 0x8140); // Configure PHY port 6 SERDES –> Faraday 1 at 1000mpbs, full duplex
为什么第一个参数是0xe,0xd,0xe,可否提供相关的说明或相关资料?
这两个方面很困惑,因初次使用,有些地方比较生疏,敬请指教,在此致谢~!
Yu Liu7:
试着回一下。
第一个问题是MDIO协议去读对端(PHY 芯片)的信息。需要研究MDIO协议以及PHY芯片的手册。
第二个问题需要结合代码和TI芯片手册一起看。