使用AM335x的Dual MAC Mode,外接两个PHY,一个是AR8035,PHY地址为4;另一个是AR8031,PHY地址为1。MDC时钟设为10.4M左右。两路PHY均支持最高25M的MDC时钟。由于在实际应用中我需要通过MDIO总线不断向AR8031这个PHY写入和读取寄存器数据(每秒可能高达50多次),经多次长时间测试发现:当两个PHY同时连上网络时,读取PHY寄存器的值偶尔会出错,概率大概是万分之一。而当我断开AR8035这个PHY的连接后,读取另一个PHY(AR8031)的寄存器值就不会出错。
听说AM335x的MDIO总线会自动轮询每个PHY的寄存器值,不知道是不是因为自动轮询与我手动读写时偶尔发生冲突导致的。还望赐教!谢谢!
Jian Zhou:
会不会是MDIO总线上有干扰。
Wei Gao11:
回复 Jian Zhou:
您的猜想是:两个PHY均接至网络时,MDIO存在干扰,只有一个PHY接至网络时MDIO总线就不存在干扰了?两个PHY都接到网络和一个PHY接网络另一个PHY不接网络,对于MDIO总线来说,这两种情况有什么具体的区别吗?谢谢啦!