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
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
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
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.
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
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).
Jim M. schrieb:> Muss man halt beim Kauf auf Linux-Kompatibilität achten...
Wurde hier schon irgendwo erwähnt, welches Betriebssystem verwendet
werden soll?
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
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?
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
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
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
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