Forum: Platinen Vorstellung meines neuen Projektes - Adapterboard fuer LAN9512, LAN9513 und LAN9514


von Stephan B. (matrixstorm)


Angehängte Dateien:

Lesenswert?

Hallo alle.

Einige kennen ggf. meine anderen Projekte wie tinyUSBboard oder den 
avrstick.
Es war jetzt laenger etwas ruhig geworden, doch heute moechte ich euch 
mein neues Projekt vorstellen.

Es ist noch ausbaufaehig und daher bisher nicht in mein regulaeres 
github-Konto gerutscht, sondern liegt noch hier: 
https://github.com/dumpsite/LAN95XX-board

Es handelt sich quasi um ein Adapterboard fuer den bekannten 
LAN951X-Controller, den auch die meisten Raspberry-Pis verwenden.
Taktung, Filterung und Stromversorgung wird auf dem Board erledigt - 
alle interessanten PINs werden aber nach aussen zur weiteren 
(?Frei-)Verdrahtung geroutet. Auch ein EEPROM im kostenguenstigen 
SOP8-Footprint ist vorgesehen und kann bestueckt werden.
Es ist so konzipiert, dass man es auch selber (z.B. mittels 
Tonertransfer via press-n-peel Folie) aetzen/bauen kann.
(Vermutlich entgegen moeglicher EMI-Bedenken einiger von euch deshalb 
auch 2-lagig ohne Probleme machbar.)
Ggf. finden es ja auch einige von euch brauchbar/nuetzlich als GPIO-, 
LAN und/oder USB-HUB Platine.

Mittels zusaetzlichem Magjack/Ethernettransformer, einem USB-Stecker und 
einem 5V->3.3V Stepdown ist der Adapter bereits via Lochrasterboard und 
(verdrillter) "Freiluftverdrahtung" in eine selbstgebaute Netzwerkkarte 
verwandelbar. (Weiter Bilder davon gewuenscht? - Lasst es mich 
Wissen...)
Vielleicht wollt ihr eurem Raspberry- oder Orange-Pi ja so ein paar 
Netzwerkschnittstellen mehr spendieren?

Im Github-Repository ist zudem auch ein einfaches, 
platformuebergreifendes Tool zum Auslesen der LAN95XX Statistiken 
enthalten.
So kann man den eigenen Aufbau (z.B. ueber die Haeufigkeit und den 
Impact von RX-Fehlern) oder die Version der verwendeten Chips bestimmen.


Ich wuerde gern diese Platine mit euch diskutieren.
Ggf. habt Ihr Anmerkungen, Verbesserungsvorschlaege, Wuensche ...etc...

MfG Stephan




Im Zusammenhang stehende Datenblaetter:

  http://ww1.microchip.com/downloads/en/DeviceDoc/9514.pdf

  http://ww1.microchip.com/downloads/en//softwarelibrary/man-lan95xx-dat/lan9514_lan9514i%20databook%20rev.%201.2%20%2803-01-12%29.pdf

  http://ww1.microchip.com/downloads/en/DeviceDoc/LAN9514%20QFN%20Rev%20B%20Schematic%20Checklist.pdf

von matrixstorm (Gast)


Angehängte Dateien:

Lesenswert?

Leider noch keine Anmerkungen? Schade.

Anbei der nun endlich erstellte PINOut - Plan.

MfG

von Peter W. (peter_w503)


Lesenswert?

Hallo Matrixstorm,

danke für die Vorstellung Deines Projectes. Ich finde dieses PCB 
interessant um damit ein Raspberry Pi Compute Module IO Board um eine 
LAN Schnittstelle zu ergänzen.
Da ich mich mit dem Pi Compute Module beschäftigen wollte und dessen 
EVAL Board unverständlicher Weise nicht über die LAN Schnittstelle 
verfügt, würde ich diese gerne mit dem Board aus Deinem Projekt 
ergänzen.

Du verwendest bei Deinem Projekt ein EEPROM für die Konfiguration des 
LAN95xx. Was für Configs nimmst Du dabei vor?
Laut dem Stromlaufplan eines alten Raspberry Pi sind die Anschlüsse des 
LAN95xx für das externe EEPROM nicht beschaltet.

von Stephan B. (matrixstorm)



Lesenswert?

Hallo Peter

Danke für dein Interesse an diesem Projekt.

Peter W. schrieb:
> Da ich mich mit dem Pi Compute Module beschäftigen wollte und dessen
> EVAL Board unverständlicher Weise nicht über die LAN Schnittstelle
> verfügt, würde ich diese gerne mit dem Board aus Deinem Projekt
> ergänzen.

Das sollte kein Problem sein - ich habe mir meinen eigenen DSL-Router 
aus einem Orange PI Zero gebaut. (Auch mit DIY USV - das ist aber ein 
anderes Projekt.)
Da ich mehrere Netzwerkschnittstellen benötige, setzte ich auch dieses 
Projekt ein.
(Ich habe dazu eine "crude" Trägerplatine für Einschaltverzögerung, 
bicolore LED Blinklogik und Spannungswandlung entworfen - Siehe Bilder 
verschiedener Entwicklungsgenerationen/Module.)
Bitte prüfe ob das Modul genug Strom für den LAN9512 bereitstellen kann.
Ich empfehle eine zusätzliche/externe Versorgung.

Peter W. schrieb:
> Du verwendest bei Deinem Projekt ein EEPROM für die Konfiguration des
> LAN95xx. Was für Configs nimmst Du dabei vor?

Als Generator für das EEPROM-Image verwende ich 
https://github.com/dumpsite/LAN95XX-board/blob/master/eeprom-image/lan95xx_eeprom_configurator.c 
,  welches quasi beim Compilieren über Makros das Image erzeugt. Die 
Einstellungen waren bisher immer leicht verschieden (zwecks 
experimentieren), im wesentlichen hat sich aber 
https://pastebin.com/RKnxvCKi bzw. https://pastebin.com/1TQZuVPW 
herauskristallisiert.

Also Selfpowered (und nicht über US-Bus siehe Empfehlung oben), 
Deaktivierung ungenutzter/nicht vorhandener USB Ports, Konfiguration der 
Strombedürfnisse auf 150mA.
Zudem kann man per EEPROM dem Netzwerkdevice eine eigene MAC-Adresse und 
Seriennummer zuteilen.
Das ist besonders nuetzlich bei mehreren Karten an einem Gerät, da man 
per UDEV nun eindeutige Interfacenamen verteilen kann.
Ausserdem ist die MAC nach jedem reboot gleich statt neu "gewürfelt" zu 
werden wie bei RasPi.

Peter W. schrieb:
> Laut dem Stromlaufplan eines alten Raspberry Pi sind die Anschlüsse des
> LAN95xx für das externe EEPROM nicht beschaltet.

Genau. Ein EEPROM muss nicht bestückt/angeschlossen werden. Bei RasPi 
hat man sich das gespart. In diesem Fall fällt der LAN951X auf die 
default-Einstellungen zurück (siehe Datenbuch/Datenblatt).
Das bedeutet aber für bestimmte Dinge, z.B. MAC-Adresse, das diese 
entweder bei jeder Initialisierung zufällig neu erzeugt werden oder 
durch einen Patch des Kerneltreibercodes (wie beim RasPi) auf einen 
konstanten Wert "hardcoded" werden. Ein Betrieb von mehreren Devices am 
->gleichen<- Netzwerk ist schwer.
Der EEPROM stellt auch beim modifizierten Kernelcode des RasPi sicher, 
das die MAC des EEPROM bevorzugt wird.

MfG Stephan

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.