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


von K. S. (vhdl-kasi)


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

von Andreas S. (andreas911)


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

von K. S. (vhdl-kasi)


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

von Andreas S. (andreas911)


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

von K. S. (vhdl-kasi)


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

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
Noch kein Account? Hier anmelden.