In der Registerkarte unter dem MDIO-Kernkapitel ist ein Fehler aufgetreten, der in Tabelle 13-3 auf Seite 13-5 im folgenden Dokument beschrieben ist:
Benutzerhandbuch für eingebettete Peripherie-IP
In der Tabelle wird angegeben, dass der Adressausgleich für MDIO_DEVAD, MDIO_PRTAD und MDIO_REGAD 0x20 ist, und dass 0x21 für MDIO_ACCESS verwendet werden sollten. Allerdings werden sie im Dokument ausgetauscht, und tatsächlich hätte es 0x21 bzw. 0x20 lesen müssen.
HINWEIS: Die angegebenen Register-Adress-Offsets (0x20 und 0x21) sind in der Tat Wortadressen, und die entsprechenden Byte-Adressen würden 0x80 bzw. 0x84.
Schreibzugriff
Der Schreibzugriff auf eine externe PHY kann über die MDIO-Schnittstelle wie folgt erfolgen:
- Führen Sie eine Avalon®-MM-Master-Schreib in die MDIO-Kernregister am Adressoffset-0x21 durch und geben Sie die externe PHY-Geräteadresse (MDIO_DEVAD), Port-Adresse (MDIO_PRTAD) und Registeradresse (MDIO_REGAD) an.
- Geben Sie eine Avalon-MM-Master-Schreib der 32-Bit-Daten in den MDIO_ACCESS Register-Offset-0x20 ein.
Was passiert im MDIO-Kern?
Sobald die Daten in das MDIO_ACCESS-Register platziert werden, startet der MDIO-Kern die Generation eines MDIO WRITE-Frames, der die in Registern zum Offset-0x20 und 0x21 angegebenen Informationen enthält. Der Frame wird dann in das Ziel-PHY-Register übertragen, dessen Adresse im MDIO_REGAD (Bits [31:16] des MDIO-Kernregisters im Offset-0x21) angegeben wird.
Lesezugriff
Der Lesezugriff von einer externen PHY kann über die MDIO-Schnittstelle wie folgt erfolgen:
- Führen Sie eine Avalon-MM-Master-Schreib in die MDIO-Kernregister beim Adressoffset-0x21 durch und geben Sie die externe PHY-Geräteadresse (MDIO_DEVAD), Port-Adresse (MDIO_PRTAD) und Registeradresse (MDIO_REGAD) an.
- Geben Sie beim Offset-0x20 ein Avalon-MM-Master-Lesegerät des 32-Bit-MDIO_ACCESS-Registers ein.
Was passiert im MDIO-Kern?
Wenn ein Lesezugriff auf das MDIO_ACCESS Register ausgegeben wird, startet der MDIO-Kern die Generation eines MDIO-LESE-Frames, der die in den Registern zum Offset-0x21 angegebenen Informationen enthält. Als Antwort auf diesen READ-Befehl über MDIO liefert die externe PHY den Wert des zugewiesenen Registers zurück zum MDIO-Kern. Dieser Wert wird im MDIO_ACCESS Register im MDIO-Kern bei Offset-0x20 geladen. Daher sieht es so aus, als würden wir das lokale Avalon-MM-Register auf Offset-0x20 lesen.
Dieses Problem betrifft sowohl MegaWi nach® wie vor den SOPC Builder Flow.