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.

AM335x MDIO read operation

Genius 5785 points

Hello,

I'm debugging the interface between AM335x MDIO and PHY. It seems that GO bit in USERACCESS register is cleared, but ACK bit is not set. I think that the read operation is completed, but the read access is not successful. PHY sends a zero bit followed by High-Z in the turnaround time. Is ACK bit clear if the zero bit is not recognized by AM335x MDIO? Please give me some advice.

AM335x TRM (SPRUH73L)
14.3.8.1 MII Management Interface Frame Formats

Regards,
Kazu

  • Hi,

    The TRM states about the Turnaround fireld:

    "Turnaround

    An idle bit time during which no device actively drives the MDIO_DATA signal shall be inserted between the register address field and the data field of a read frame in order to avoid contention. During a read frame, the PHY shall drive a zero bit onto MDIO_DATA for the first bit time following the idle bit and preceding the Data field. During a write frame, this field shall consist of a one bit followed by a zero bit."

    Do you see this idle bit before the zero bit is driven by the PHY? Do you have an external pullup on the MDIO_DATA line?

    ACK bit not set means that the PHY acknowledge has not been recognized.