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
