Forum: Mikrocontroller und Digitale Elektronik Ethernet: Timings beim RMII Interface mit externem Oszillator; LAN8720A und ESP32 WROVER


von Martin Z. (0xdfa63f)


Angehängte Dateien:

Lesenswert?

Hallo,
ich stelle mir die Frage wie ich bei einem Ethernet System bestehend aus 
ESP32 als MAC und LAN8720A als PHY das RMII Interface bezüglich timing 
constraints auf Kompatibilität überprüfe. Ich würde mich über eure Hilfe 
sehr freuen.

Links im Bild: Datenblatt LAN8720A DS00002165B-page 61, RMII Timing 
(REF_CLK In Mode)
Rechts im Bild: Technical Reference Manual ESP32 TRM (Version 4.8), 
p228-229, 10.6.4 RMII Timing

Meine Interpretation soweit:

Leitungslänge zwischen MAC und PHY sind bei RXD: 41mm-42mm und 
TXD:43mm-44mm, hab ich aber nicht berücksichtigt.

PHY sendet zum MAC:
RXD[1:0] beim LAN8720 = Sender zum MAC (der RXD beim PHY ist laut Pins 
Liste ein output). Dessen Holdzeit t_ohold beträgt minimum 3ns nach 
positiver CLK Flanke. Valide Daten liegen aber erst nach spätestens 
t_oval = 14ns nach Flankenwechsel an.
--> Hier steige ich schon aus. Wenn das eine Art output Delay sein soll, 
dann greift doch erst das Delay und dann kommt die Hold Zeit hinzu, oder 
nicht?

Mein nächster Schritt wäre, dass der ESP nun eine Setup Zeit bietet, die 
sich mit Hold Zeit vom Sender "verträgt".
Also nun rechte Bildhälfte oben: input delay plus hold time: mindestens 
4ns bis 9ns. Das ist die Zeit, die dem Empänger vor dem Taktwechsel die 
Daten zur Verfügung gestell werden müssen (also durch die hold time).
Wir haben hier 50MHz, also 20ns Zykluszeit.

Und jetzt stelle ich mir die Frage wie das Zusammenpassen 
soll?(Natürlich fehlt dann noch die andere Richtung, also MAC sendet zu 
PHY.)
Kann mir jemand weiterhelfen?
sg Martin

von Wastl (hartundweichware)


Lesenswert?

Martin Z. schrieb:
> Und jetzt stelle ich mir die Frage wie das Zusammenpassen
> soll?

Ich stelle mir zunächst die Frage welchen besonderen Sinn es
machen soll ein WLAN-fähiges Controller-Modul mit LAN-Anbindung
auszustatten, noch zudem es dann vermutlich auf Arduino-Basis
stattfinden soll. Wenn meine Zweifel ausgeräumt sein sollten
dann behaupte ich dann das Gegenteil von dem was ich vermute.

von Harald K. (kirnbichler)


Lesenswert?

Wastl schrieb:
> Ich stelle mir zunächst die Frage welchen besonderen Sinn es
> machen soll ein WLAN-fähiges Controller-Modul mit LAN-Anbindung
> auszustatten

Wer Funk kennt, nimmt Kabel. Ganz einfach.

Warum sollte man das integrierte Ethernet-Interface eines µC nicht 
verwenden?

von Wastl (hartundweichware)


Lesenswert?

Harald K. schrieb:
> Warum sollte man das integrierte Ethernet-Interface eines µC nicht
> verwenden?

Im Prinzip stimme ich dir zu. Aber bei der Verwendung eines
Controllers mit Ethernet gibt es eine Menge Kandidaten die
leichter zu handlen sind als ein ESP32. Hat man erst mal
die Hardware (hoffentlich richtig) angebunden folgt der
mühsame Weg der Software-Implementierung die beim ESP32
ohne Arduino sicherlich um einiges steiniger ist als bei
Atmel oder STM32.

von Harald K. (kirnbichler)


Lesenswert?

Hat der Threadstarter irgendwo irgendwas von Arduino geschrieben? 
Vielleicht nutzt er ja das Espressif-SDK, und hat schon lange Erfahrung 
im Umgang mit dem ESP32 -- bis auf das Ethernet-Interface. Immerhin 
guckt er sich Datenblätter an, was schon mal gegen das beliebte 
Arduino-"Library"-Zusammenklicken spricht.

Könnte ja sein.

von Wastl (hartundweichware)


Lesenswert?

Harald K. schrieb:
> Könnte ja sein.

Ja schon. Ich habe ja auch nur eine Vermutung ausgesprochen,
wie du in meinem Beitrag vorher nachlesen kannst.
Für mich ist jedenfalls der ESP32 (wie auch sein Vorgänger)
ein rotes Tuch was Hardware-Implementierungen betrifft.
An der Hardware-Programmierung (ohne Arduino) habe ich mich
schon mal versucht und habe die "Learning Curve" aufgegeben.

Dann schrub ich auch noch:

Wastl schrieb:
> Wenn meine Zweifel ausgeräumt sein sollten
> dann behaupte ich dann das Gegenteil von dem was ich vermute.

Das tu ich auch gerne und sage dann: was kümmert mich mein
Geschwätz von vorher.

von Martin Z. (0xdfa63f)


Lesenswert?

Ich bin für das HW Design zuständig, die Software für den ESP32 macht 
jemand anderer und ist auch schon ziemlich weit fortgeschritten.
Der ESP war glaub ich billig in der Anschaffung und Erfahrung war mit 
diesem Controller auch vorhanden, genaueres weiß ich nicht.

Ich würde mich nun um Hilfe freuen.

von 900ss (900ss)


Lesenswert?

Martin Z. schrieb:
> Ethernet System bestehend aus ESP32 als MAC und LAN

Gibt's fertig zu kaufen wenn der Basteldrang nicht an erster Stelle 
steht.
https://www.roboter-bausatz.de/p/wt32-eth01-esp32-modul-mit-ethernet-bluetooth-wifi

Und funktioniert, hab ich schon mit gearbeitet.

von Harald K. (kirnbichler)


Lesenswert?

Wastl schrieb:
> An der Hardware-Programmierung (ohne Arduino) habe ich mich
> schon mal versucht und habe die "Learning Curve" aufgegeben.

Falls Du es nochmal probieren möchtest: Es gibt jemanden namens 
"bitluni", der mit dem ESP32 recht bizarres Zeug angestellt hat, u.a. 
ein PAL-Videosignal erzeugen (Composite Video in Farbe) oder auch ein 
VGA-Videosignal.

https://bitluni.net/esp32-color-pal
https://bitluni.net/esp32-vga

Vielleicht hilft das ja beim arduinofreien Einstieg.

900ss D. schrieb:
> Gibt's fertig zu kaufen

Und da ist genau der gefragte LAN8720A verbaut.

von Flo G. (flolix)


Lesenswert?

Es gibt von Olimex diverse Esp32 Boards mit dem LAN8710, auch mit RMII 
Interface. Die sind Open source. Vielleicht da mal reinschauen? Das 
ESP32-EVB und ESP32-Gateway laufen bei mir vielfach stabil.

grüße Flo

von Martin Z. (0xdfa63f)


Lesenswert?

Ich habe noch immer Schwierigkeiten mit dem Verständnis der genannten 
Setup und Hold Zeiten.

LAN8720 sendet zum ESP32:
Holdzeit vom LAN8720: 3ns
Setupzeit vom ESP32: 1ns
--> sollte so ok sein, der ESP32 benötigt nur 1ns, erhält aber 3ns.

ESP32 sendet zum LAN8720:
Holdzeit vom ESP32: 1ns
Setupzeit vom LAN8720: 4ns
--> hier passt das nicht zusammen, der LAN8720 benötigt 4ns!

Über sachliche Hilfe würde ich mich freuen.

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.