Hallo zusammen, es steht mal wieder ein neues Projekt an, dabei möchte ich u.a. mehrere Phys konfigurieren. Hierzu gibt es ja die MDIO Schnittstelle. Bisher habe ich meinen VHDL Code immer komplett selbst geschrieben (mal abgesehen von ein paar PLLs, die über einen Coregen erstellt wurden) doch jetzt möchte ich, falls vorhanden auf bestehendem Code aufsetzen. Das MII Interface ist ja standardisiert so dass ich hier eigentlich zuversichtlich war, im Netz Code zu finden. Leide war ich bisher nicht erfolgreich und habe den Eindruck, dass ich evtl nach den falschen Begriffen suche. Daher zunächst die konkrete Frage: Habt von Euch jemand einen Code, der ein MDIO Interface bedient? Als Interface nach Außen stelle ich mir beispielweise Adress Bus, Read Bus, Write Bus mit Rd und Wr und busy Signalen vor. Alternativ wäre auch ein eingebundenes Ram interessant, in dem bereits die MDIO Parameter hinterlegt werden können. Nun noch eine allgemeine Frage: Findet ihr häufig im Netz IP Cores, die Ihr für Eure Projekte nutzen könnt? Wenn ja, dann wo und wie? Oder sind die Problemstellungen doch immer zu speziell, um etwas passendes zu finden? Ich freue mich auf Eure Antworten. Viele Grüße, Peter
Peter K. schrieb: > Habt von Euch jemand einen Code, der ein MDIO Interface bedient? Ja, hab ich. > nach Außen stelle ich mir beispielweise Adress Bus, Read Bus, > Write Bus mit Rd und Wr und busy Ich nehme an, Du möchtest einen Controller anschliessen? Warum schließt Du den Controller nicht direkt an den PHYs an? Wenn Du das dennoch im FPGA machen willst, kannst Du es gleich komplett machen. MDIO ist nichts anderes, als SPI mit ein bischen Protokoll. Der Hauptaufwand ist das, was du dann damit machen willst. Peter K. schrieb: > Findet ihr häufig im Netz IP Cores, Ja! >die Ihr für Eure Projekte nutzen könnt? Nein! Grund: Die haben allesamt Macken, sind schlecht dokumentiert und gehen am Notwendigen vorbei. Dort findet man meist genau das implementiert, was einfach zu schreiben war, das Schwere fehlt. Und es fehlt den meisten Proggern die Muße, ihre Sachen komplett auszuprogrammieren. Daher stelen sie den 2.klassigen Kram gerne ins Netz. Besonders fehlt das, was man selber braucht :-) Die richtig guten Cores, die perfekt dokumentiert und durchvalidiert sind, findet man bei vielen guten VHDL-proggern in den Firmen. Aber die rücken ihre Cores nicht raus. Sowas macht man halt nicht in einigen Tagen und die Firmen investieren. Bevor Du fragst: Meinen kann ich Dir nicht geben und er brächte Dir auch nichts, weil er zu 80% aufgabentypisch ist. Konkret braucht man für MDIO wirklich nicht viel, das meiste sind die Zugriffe und die Logistik drum herum. Wenn du das wirklich aufteilen willst, ist die meiste Arbeit beim Controller zu leisten. Das MDIO kostet maximal 3 Tage, wenn man IO-Ports bedienen kann und etwas Erfahrung hat. Allein das Businterface, so wie Du es haben willst, wäre schon die Hälfte :-) Ich rate aber wie angedeutet dazu, es komplett im FPGA zu machen.
Hallo Heiner, vielen Dank für Deine Antwort. Deine Erfahrungen mit IP Cores decken sich mit meinen. Da bin ich ja schon mal beruhigt, dass es nicht nur mir so geht und nicht nur ich nichts passendes finde. Ein MDIO Interface zu implementieren ist sicherlich kein Hexenwerk und vergleichsweise schnell gemacht, ich habe es für mich nur als Anlass genommen, noch einmal einen Anlauf auf die IP Core Suche zu nehmen. Bei dem Projekt ist kein Controller involviert, es sollen proprietäre Datenpakete über Ethernet übertragen werden. das MDIO Interface benötige ich z.B. um zwischen 10MBit und 100 MBit umzuschalten oder andere PHY Einstellungen zu ändern. Wer sonst noch Erfahrungen mit IP Cores teilen möchte, ist herzlich eingeladen. Auch sachdienliche Hinweise hinsichtlich MDIO Interface werden weiterhin angenommen :-) Viele Grüße, Peter
Was willst Du denn wissen? Hast Du ein Dok? Es gibt von verschiedenen Seiten Beschreibungen über MDIO, sowohl die Schnittstelle, als auch die Logik.
Für das reine MDIO Interface habe ich ca 200 Zeilen gebraucht. Nötig war ein Frequenzteiler, der auf einen gültigen Clock (8MHz in meinem Fall) runtergeregelt hat, und dann eine Statemachine zum Abarbeiten eines einzelnen Kommandos. Darüber ist noch ein Statemaschine angesiedelt, die dem PHY über das MDIO-Interface die notwendigen Befehle zum sauberen Arbeiten schickt. Waren auch noch mal so 200 Zeilen. Ist also nicht so kompliziert.
Hallo, ich bin ganz neu in der Welt der Ethernet und FPGA, habe hier einen Board mit 2x SMSC LAN8710 und einen Xilinx FPGA. Kann mit jemand bitte in klar text sagen was das MDIO-Interface genau ist? Und was ist seine Funktion? Vielen Dank im vorraus Abdo
In Zeiten von Google sollte man doch herausfinden können, was MDIO ist
zumal es Wikipedia gibt, wo ich und andere einiges dazu geschrieben haben. Das MDIO konfigueirt den PHY, kann dort Funktionen lesen und setzen. Man braucht es, wenn man etwas mehr tun will, was nur auto config und Senden.
Ich habe MDIO selbst programmiert. In meinem Fall ist es aber ein Slave, der die empfangene Daten weiter zum uC schieben soll. An sich ist MDIO ziemlich easy. Solche "kleineren" Aufgaben setze ich persönlich lieber selbst um. IP für Master gibt es von Lattice: http://www.latticesemi.com/products/intellectualproperty/referencedesigns/mdioslaveperipheral.cfm
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.