MDIO总线容易弄错的地方MDIO不像12C总线数据总是在时钟下降沿变化。MDIO在802.3标准里面定义。标准没有要求数据在时钟的哪个沿变化,但是在PHY驱动MDIO总线时要求MDIO必须在MDC上升沿后0300ns内发生变化。这就隐含了PHY在MDC的上升沿时打出数据。所以在MAC通过MDIO读PHY信息时,前面MAC驱动MDIO部分是在MDC下降沿打出数据,后面PHY驱动MDIO部分是在MDC上升沿打出数据。还有一个容易引起误解的问题是由MAC转向PHY驱动MDIO时的TA阶段,也叫TurnAround阶段。这部分时序比较特殊。在写操作时,MAC始终驱动MDIO,TA阶段是完整的两个时钟周期,并且都是MDC下降沿时MDIO发生变化。但是在读操作时,由于涉及到驱动源切换,TA阶段就不是完整的两个时钟周期。严格来说,读时TA是一个半时钟周期。开始时PHY一直输出高阻,MAC驱动MDIO在MDC下降沿变化直到最后一个周期,即REGAD最低位那个周期的MDC下降沿,MAC的MDIO输出高阻。然后MDIO总线进入TA阶段。MAC输出高阻一直到整个读操作结束,PHY在进入TA阶段的