Forum: Mikrocontroller und Digitale Elektronik Ethernet für den UP-Core mit ENC28J60


von Mario (Gast)


Lesenswert?

Hallo,

ich möchte für meinen UP-Core einen Ethernetadapter auf einer Seperaten 
Platine bauen und diesen dann über den 100-Pin EXHAT verbinden.

Kennt sich jemand damit aus bzw. hat eine Idee wie man das mit dem 
ENC28J60
umsetzen kann?

Hier wurden schon zahlreiche Umsetzungen dikutiert. Ich bin mir jedoch 
nicht sicher auf welche Weise der UP-Core die Daten vom ENC28J60 
übernehmen kann oder welche maßnahmen noch getroffen werden müssen. 
Beitrag "ENC28J60 macht Probleme"

vielen Dank für eure schnelle Hilfe

Gruß Mario

von fchk (Gast)


Lesenswert?

Der ENC28J60 ist dafür eigentlich nicht gedacht und geeignet.

Der vorgesehene Weg ist die Anbindung eines PCIe Ethernet Controllers 
oder alternativ die Anbindung über USB. Beides ist auf dem 100-Pin 
Connector vorhanden. Damit hast Du eine wesentlich höhere 
Geschwindigkeit und auch gleich die passende Treibereinbindung out of 
the Box.

fchk

von Mario (Gast)


Lesenswert?

Hallo fchk,
vielen Dank für deine schnelle Antwort.
Kennst du einen PCIe Ethernet Controller welcher mir bei der 
Problemlösung helfen kann? Bzw. was benötigt man dann weiterhin ?

Ich habe leider keine große Erfahrung mit Ethernet.

LG Mario

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Mario schrieb:
> Kennst du einen PCIe Ethernet Controller welcher mir bei der
> Problemlösung helfen kann?

Verbreitet sind Bausteine von Realtek, wie z.B. RTL8111 oder RTL8168.

Für erste Versuche dürfte es am einfachsten sein, einen PCIe-Slot an den 
100poligen Steckerbinder zu adaptieren, in den kannst Du dann eine 
PCIe-Netzwerkkarte stecken.

Wäre es aber nicht vielleicht sinnvoller, statt des "Up Core" eine 
Variante zu verwenden, die von vornherein mit Ethernet ausgestattet ist?

Das "Up Board" oder das "Up Squared" haben das.

von Mario (Gast)


Lesenswert?

Hallo Rufus,

die anderen UP-Boards sind leider für mein Vorhhaben zu groß. Somit bin 
ich auf das UP-Core angewiesen und entwickle eine zweite Platine mit auf 
mein Problem zugeschnittenen Funktionen. Diese sind alle bereits auf der 
Platine integriert und es fehlt nur noch ein Ethernetanschluss.

Zu den Realtek Bausteinen erhält man leider keine Datenblätter. Somit 
ist es schwer die Umsetzung damit zu planen.

Gruß Mario

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

PCIe-NICs gibt es natürlich auch von anderen Herstellern, Intel, 
Marvell, Broadcom ...


Eine Alternative zu PCIe-Ethernet-Bausteinen wären USB-Netzwerkadapter.

So etwas gibt es vom Hersteller ASIX in Form des AX88772B (Datenblatt 
nur nach Registrierung/Anfrage beim Hersteller) oder in Form eines SMSC 
LAN9512 (der wird z.B. auf dem Raspberry Pi verbaut).

von Jim M. (turboj)


Lesenswert?

Was spricht gegen einen fertigen USB2.0-Ethernet Adapter? Muss man halt 
beim Kauf auf Linux-Kompatibilität achten...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Jim M. schrieb:
> Muss man halt beim Kauf auf Linux-Kompatibilität achten...

Wurde hier schon irgendwo erwähnt, welches Betriebssystem verwendet 
werden soll?

von fchk (Gast)


Lesenswert?

Mario schrieb:
> vielen Dank für deine schnelle Antwort.
> Kennst du einen PCIe Ethernet Controller welcher mir bei der
> Problemlösung helfen kann? Bzw. was benötigt man dann weiterhin ?

Nimm eine MiniPCIe Netzwerkkarte.
Z.B. die hier:
http://www.delock.de/produkte/G_95239/merkmale.html
https://www.heise.de/preisvergleich/delock-95239-a1532308.html

und baue auf Dein Board einen MiniPCIe Slot.

PCIe ist nicht ohne!
Lies das hier:
http://www.linelayout.com/ziyuan/pci-e.pdf

Alternativ einen USB-Ethernet-Adapter kaufen und dadran basteln.

fchk

von Mario (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Rufus,

ich habe nun als erstes mal versucht einen PCIe Adapter an den 100 Pin 
Exhead des UP-Core zu bringen.
Was müsste ich bei der Verschaltung noch beachten?
Oder wo sind Probleme absehbar?

LG Mario

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Der Up Core stellt auf seinem 100poligen Stecker eine Spannung zur 
Verfügung, aus der Du mit einem LM317 (Dein IC22) 12 V erzeugen kannst?

Da habe ich doch deutliche Bedenken.

Wenn ich mir das Steckerlayout ansehe 
(Beitrag "Re: USB 3.0 an UP-Core"), dann liegen da 
5V an.

Du bräuchtest also einen Step-Up-DC-DC-Wandler, oder solltest die 12V 
vielleicht gleich von woanders her beziehen.


Auch die 3.3V ... ich weiß ja nicht, nimm doch einfach einen LM1117-3.3 
und lass' die Widerstände weg.

Welchen Zweck haben die zwei separaten 3.3V-Regler?

von Frank K. (fchk)


Lesenswert?

Mario schrieb:
> Hallo Rufus,
>
> ich habe nun als erstes mal versucht einen PCIe Adapter an den 100 Pin
> Exhead des UP-Core zu bringen.
> Was müsste ich bei der Verschaltung noch beachten?
> Oder wo sind Probleme absehbar?

PCIe ist übelste Hochfrequenztechnik. Ohne Multilayer, definierte 
Impedanzen, differential Pairs, bei denen + und - eines jeden Paars auf 
0.12mm gleich lang sein müssen etc. geht da gar nichts.

Lies das hier:

http://www.linelayout.com/ziyuan/pci-e.pdf

Wenn Du alles verstanden hast und Dich daran hältst, sollte das kein 
Problem sein.

fchk

von Mario (Gast)


Lesenswert?

Hallo,

Rufus Τ. F. schrieb:
> Welchen Zweck haben die zwei separaten 3.3V-Regler?

ich bin auf diese Tabelle gestoßen:
http://cds.linear.com/docs/en/design-note/dn346f.pdf?_sm_au_=iVVZM0f8Z7qj5PVR

In dieser ist ersichtlich, dass die Pins mit den 3,3V unterschiedliche 
Strombegrenzungen benötigen. Das wollte ich mit den zwei LM317 
Schaltungen bewirken.
Nachdem ich nun das Datenblatt gelesen habe scheint der LM1117.3.3 
besser auf meine Anwendung zu passen.

Frank K. schrieb:
> Lies das hier:

Ich habe mich mit den Routingregeln beschäftigt und werde diese auf 
meine Platine berücksichtigen. Ich habe dazu jedoch zwei Fragen:

1. Könnte man das ganze auch mit 2-Layern fertigen und somit die VCC/VSS 
Layer weglassen?

2. Habe ich es richtig verstanden, dass ich die RX Pins vom UP-Core mit 
den TX Pins der PCIe-Karte und umgekehrt schließen muss?

LG Mario

von fchk (Gast)


Lesenswert?

Mario schrieb:
> Ich habe mich mit den Routingregeln beschäftigt und werde diese auf
> meine Platine berücksichtigen. Ich habe dazu jedoch zwei Fragen:
>
> 1. Könnte man das ganze auch mit 2-Layern fertigen und somit die VCC/VSS
> Layer weglassen?

Nein. Eine durchgehende Groundplane ist zwingend notwendig. Die zu 
wählenden Leiterbahnbreiten sowie die Abstände zwischen den beiden 
Elementen eines jeden differentiellen Paares hängen vom Abstand der 
Signalleiterbahnen zur darunter liegenden Groundplane sowie der 
Dielektrizitätskonstante des Platinenmaterials und von der Dicke der 
Kupferschichten ab. Die ganzen Abmessungen müssen auf mindestens 0.1mm 
genau stimmen, sonst bekommst Du nachher keine Verbindung auf dem PCIe. 
Das heißt, dass Du den Lagenaufbau vorher wissen musst.

Bei zweilagigen Leiterplatten würden die erforderlichen Abstände einfach 
zu groß werden.

Für die Geometrien gibt es extra Berechnungsprogramme. Such mal nach 
"Saturn PCB Calculator".

> 2. Habe ich es richtig verstanden, dass ich die RX Pins vom UP-Core mit
> den TX Pins der PCIe-Karte und umgekehrt schließen muss?

Ja.

fchk

von Mario (Gast)


Lesenswert?

Hallo,

https://www.tecchannel.de/i/detail/artikel/402114/5/337495/IM_574B8576-FEE2-132C-A1552A1998CEB50E/

auf dieser Seite steht nun, dass die Datenleitungen beim PCIe maximal 
30,48 mm sein dürfen. Ich nehme an das ist ein Fehler?

In dem oben gegebenen Link steht was von maximal 15,5 Inch was c.a 40cm 
wären.

Was stimmt da nun?

LG Mario

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Mario schrieb:
> Ich nehme an das ist ein Fehler?

Das würde ich auch annehmen; normale PC-Motherboards ließen sich mit 
dieser Vorgabe nicht designen.

von fchk (Gast)


Lesenswert?

Mario schrieb:

> auf dieser Seite steht nun, dass die Datenleitungen beim PCIe maximal
> 30,48 mm sein dürfen. Ich nehme an das ist ein Fehler?
>
> In dem oben gegebenen Link steht was von maximal 15,5 Inch was c.a 40cm
> wären.
>
> Was stimmt da nun?

Alles. Es kommt drauf an:
- wie präzise du die differentielle Impedanz des Paares und die 
Single-Ended Impedanz gegenüber der Groundplane getroffen hast
- wie breit die Leiterbahnen der differentiellen Paare sind. Breitere 
Leiterbahnen haben geringere Verluste. Aber Achtung! Mit der Änderung 
der Leiterbahnbreiten ändern sich auch die Impedanzen. Du musst dann die 
Dicke des Dielektrikums anpassen, damit die Impedanzen wieder stimmen.
- was für ein Leiterplattenmaterial Du hast
- wie viele Vias Du hast, und wie Durchmesser und Höhe sind
- ob Steckverbinder im Pfad sind, und wenn ja, welche und wie viele
- welche Datenrate Du fährst (Gen 1: 2.5 GBps, Gen 2: 5 GBps, Gen 3: 8 
GBps)
- wie gut Du die restlichen Designvorgaben eingehalten hast.

Und schlussendlich gibt es niemals eine harte Grenze, bis zu der es 100% 
funktioniert, und dahinter überhaupt nicht mehr. Die Bitfehler werden 
eben langsam mehr.

fchk

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.