mikrocontroller.net

Forum: FPGA, VHDL & Co. Ethernet in VHDL mit der MII des DP83848C


Autor: K. S. (vhdl-kasi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo alle zusammen,

ich hab ein "Altera Cyclone III Starter Board" mit "Terasic Multimedia 
Touch Panel Daughter Board (MTDB)" und möchte davon die 
Ethernetschnittstelle (DP83848C) über MII nutzen. Wobei ich nur Daten 
senden möchte. Der Empfang ist mir egal.

Ich gebe vollständige Ethernetrahmen (mit Preamble und FCS) nibbelweise 
an TxD der MII mit fallender Taktflanke von TxCLK. Solange gültige Daten 
anliegen ist TxEN '1'. Der Reset_n des Bausteins ist auch auf '1'. 
Soweit konnte ich das an den Eingängen des DP83848C nachmessen. Aber 
irgendwie kommen keine Daten aus dem Baustein an T+ oder T- der 
Ethernetbuchse raus.

Die Daten an der RJ-45-Schnittstelle versuche ich mit "Wireshark" zu 
lesen, aber der liest nix, ausser Boardscast von meinem Rechner. 
Zusätzlich leuchten die grüne und orange LED's der 
Ethernetschnittstelle. Mein Code ist in VHDL geschrieben.

Kann mir einer sagen, was ich bei der Ansteuerung über MII vergessen 
hab? Über die MDIO wollte ich keine Register verändern, weil man diese 
über Pullups vorher einstellen kann. Ich glaube das hat der 
Boardhersteller auch gemacht, sicher bin ich mir dabei ander nicht. Die 
Durchforst einiger Datenblatter brachte nix und der Support von Terasic 
antwortet mir nicht :-(



Grüße

Kasi

Autor: Andreas S. (andreas911)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm...

Mit dem MII wird ja der MAC mit dem PHY verbunden. Was für ein MAC wird 
denn genutzt ? Habe momentan ähnliche Probleme bei der Implementierung 
eins PHY. Ich kann zwar eine MAC angeben, eine IP zuordnen und die IP 
Boardintern pingen, aber Daten senden kann ich nicht. Bei mir liegt es 
vermutlich daran, dass mein PHY in mehreren Modi arbeiten kann und ich 
noch nicht herausgefunden habe wie man das ändert. Vielleicht ist es bei 
Dir ähnlich ?


Gruß,


Andreas

Autor: K. S. (vhdl-kasi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Andreas,

die MAC hab ich mir selbst erstellt, von daher ist fraglich ob dies auch 
richtig funktioniert ;-)

Ich nutze jetzt einen Loopback Connector, der meine gesendeten Rahmen 
auf dem Empfänger zurückkoppelt. Somit kann ich meine eigenen Rahmen 
sehen, aber das RxERR und das RxDV ist über den ganzen Rahmen gesetzt, 
während ich einen meiner Rahmen empfange. Das bedeutet, dass der Rahmen 
falsch ist. Kennst du vielleicht andere Gründe dafür außer einem 
falschen CRC? Weil mein CRC hab ich mit der ASCII Zeichenfolge 
"123456789" überprüft.

Zu deinem Modus Problem. Bei meiner PHY kann ich über die MDIO auf 
gewisse Register zugreifen. In diesen Registern kann man den Modus (RMII 
 MII  SNI) einstellen. Bei der DP83848C kann ich den Modus bei Reset 
automatisch einstellen, je nach dem wie man die Pull-Ups an Ausgängen 
von RxD setzt. Bei mir war die MII durch das Board schon voreingestellt.

Hast du vielleicht einen garantiert heilen Ethernetrahmen für mich? Also 
mit richtigen CRC, Typefield und sonstiges? Weil dann könnte ich den mal 
direkt durch meine MII jagen um zu sehen, ob ich meinen Rahmen richtig 
erzeuge, oder die MII Mist macht.


Grüße

Kasi

Autor: Andreas S. (andreas911)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

als ich würde einfach den Ethernet Core von OpenCores.org laden. Da ist 
alles bei was benötigt wird. Ich glaube das ist die sicherste 
Alterantive. Zumindest als Beispiel ist das ganz gut zu nutzen.

Das mit den Pull-Ups habe ich jetzt auch in meiner Doku gefunden. Aber 
wie ändert man denn diesen Pull-Up ? Ich hab noch so meine 
Schwierigkeiten mit Quartus. Wäre schön wenn Du da nen Tip hättest.


Gruß,

Andreas

Autor: K. S. (vhdl-kasi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Andreas,

ich hab mich da jetzt nicht wirklich eingelesen, was die Pull-Ups 
betrifft. Aber ich denke, dass externe Hardware gemeint ist und nix 
internes vom FPGA.

Kommen bei dir gar keine Daten raus, wenn du die Loopback funktion 
deiner PHY nutzt? Oder nur falsche? Weil bei der MII musst die Nibbel, 
die du sendest ganz komisch drehen (War bis heute morgen einer meiner 
Fehler), siehe IEEE 802.3 section 2 Überschrift 22.2.3.2.1 und dort die 
Tabelle.

Danke für den Tipp mit OpenCores.org mal sehen ob ich da was gültiges 
rausbekomme ;-)

Grüße

Kasi

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.