Gast
#4484059
Hallo Forum, ich suche den richtigen Weg, zu überprüfen, ob ein Ethernet Link besteht bzw. ob nach einer Unterbrechung wieder ein Link besteht und erneut eine Verbindung aufgebaut werden kann. Mein Projekt ist dieses hier: Beitrag "Re: STM32 Fehler in Webserver Software von STM" Da Ethernet recht komplex ist, bin ich mir über den richtigen Weg nicht ganz im Klaren. Im Reference Manual zum STM32F107 habe ich bei der MAC Beschreibung nichts gefunden, wie ich den Link Status auslesen kann. Hab ich was übersehen? Im PHY (LAN8710A) gibt es über die SMI Schnittstelle im Basic Status Register (Register 1) ein Link Status Bit (Bit 2). Wenn ich das im Beispielcode von ST richtig sehe, dann wird das SMI Interface nur für die Konfiguration des PHYs benötigt und nicht während der normalen Netzwerkkommunikation. Kann ich also dieses Register pollen und auf den Link Status prüfen, ohne die Netzwerkkommunikation zu stören? Über den PHY Interruptpin gibt es auch ein Link Down Event. Aber ich kann ja zwischen den auslösenden Events am Controller nicht mehr unterscheiden. Ich kann es dann nur so machen, dass das Link Down Event das einzig aktive Event ist. Kann ich im TCP/IP Stack (hier lwIP) noch etwas über den Link Status erfahren? Beim Bootup läuft die Ethernet Konfiguratuion aus dem ST Beispiel nur durch, wenn auch ein Link da ist. Wenn man ohne Kabel bootet, fehtl ja die ganze Konfiguration. Dann kann ich mit dem Pollen des Link Status Registers auch nichts stören und anschließend die gesamte Konfiguration anstoßen. Auf welcher Ebene (MAC im uC, PHY Register, lwIP) überwacht man nun korrekter Weise den Link Status, um ggf. darauf reagieren zu können?