Moin, habe einen STM32F407VET6 ganz nach anerkannten Regeln der Technik mit einem LAN9303 verbandelt, funktioniert auch alles soweit. Jedoch nach einigen Stunden Betriebszeit fängt das TX_EN Signal ausgehend vom STM32 an zu schwächeln, sodass der STM32 irgendwann nicht mehr mit dem Internet kommunizieren kann. Kennt jemand so ein Phänomen? MII hat 68 Ohm Traces, Sonst sind alle anderen Funktionen beim STM32, soweit ich das getestet habe, intakt.
Es geht also am Anfang und hört dann auf? Schönes Phänomen. Mehrere Möglichkeiten: Kaputter Code: Irgendwann wird durch einen Programmierfehler der Pin umkonfiguriert Chip-Schaden: ESD Schlag o.ä. hat die Pinstruktur angeknackst und über Temperatur setzt er dann irgendwann aus. Wenn das Problem auftritt, ist der Fehler dann nach einem Reset (ohne Power-Cycle) wieder weg, oder musst du den Chip länger ausschalten? Hast du mal mit dem Debugger einen Registerdump der MAC und des GPIO Ports gemacht, sobald der Fehler auftritt? Hört die Kommunikation schlagartig auf, oder nimmt die Signalqualität des TXEN Signals mit der Zeit ab? (Oszilloskop Aufnahme vor und nach Fehler) Felix W. schrieb: > schwächeln Was heißt schwächeln? Ich hatte einmal etwas ganz ähnliches auf einer selbst gelöteten Platine: Der Pin am STM (TQFP100) sah 1a gelötet aus. Aber aus irgendeinem Grund war zwar Zinn am Beinchen und auf dem Pad, aber es hatte keinen Kontakt. Sobald dann die Platine warm wurde, war die Verbindung schlagartig offen.
Wenn der Chip mehrere Stunden ausgeschaltet war, läuft er für wenige Minuten wieder. Bisher hatte es den Eindruck gemacht, als würde das Signal TX_EN einfach seltener kommen, werde das aber nochmal checken. Den kaputten Code kann ich ausschließen, da der Chip nur die nötigste Programmierung bekommen hat. Die Register und Ports versuche ich mit den Debugging Tools auszulesen, sobald sich ein Fenster öffnet, wo der Chip eine angenehme Fehlerhäufigkeit aufweist. Hatte ähnliches Verhalten mal bei einem Netzwerk Phy. Da habe ich ihm Vollspeed die Register ausgelesen bis er ausgestiegen ist. Nach längerem liegen ging er dann wieder. Kann es sein, dass der angehängte Code das Gerät auf Dauer überlastet? Warm wird er nicht.
Felix W. schrieb: > Kennt jemand so ein Phänomen? Du zeigst Signale die mit einem Logik-Analysator aufgezeichnet wurden. Man könnte spekulieren dass das in Frage kommende Signal einen "analogen" Zwischenzustand angenommen haben könnte, hervorgerufen durch einen Kampf zweier Signale die eigentlich nichts miteinander zu tun haben sollen, sich aber zufällig doch berühren - durch einen Platinen-Fehler (Äz-Brücke) oder einer niederohmigen Verbindung. Auch ein (sehr) starker Pullup/ Pulldown oder ein hochohmiger Längswiderstand kann so ein Phänomen verurachen.
Gute Idee, kann ich aber soweit ausschließen. Wenn ich nämlich im Logic Analyzer die Vth ändere, das heisst, dass er schon bei höherem oder niedrigem Pegel auf 1 oder 0 springt, bleibt das Muster das selbe, kann hier denke ich von Digitalen Werten ausgehen 1/0.
Felix W. schrieb: > Wenn ich nämlich im Logic > Analyzer die Vth ändere, das heisst, dass er schon bei höherem oder > niedrigem Pegel auf 1 oder 0 springt Äusserst unsicher. Ich würde nie mit einem Logik-Analysator auf analoges Signal-Verhalten schliessen.
späh kulant schrieb: > Felix W. schrieb: >> Wenn ich nämlich im Logic >> Analyzer die Vth ändere, das heisst, dass er schon bei höherem oder >> niedrigem Pegel auf 1 oder 0 springt > > Äusserst unsicher. Ich würde nie mit einem Logik-Analysator > auf analoges Signal-Verhalten schliessen. Korrekt. Nur eine Oszi-aufnahme schafft hier Abhilfe Felix W. schrieb: > Wenn der Chip mehrere Stunden ausgeschaltet war, läuft er für wenige > Minuten wieder. Das heißt ja, dass die ausgeschaltete Zeit einen Einfluss hat, was erstmal für ein analoges Problem sprechen würde. Felix W. schrieb: > Kann es sein, dass der angehängte Code das Gerät auf Dauer überlastet? > Warm wird er nicht. Du zeigst einen Screenshot irgendwelcher Funktionsaufrufe. Keine Ahnung, was die machen ;) (Ich programmiere nie mit den Libraries von ST...) Generell ist ein STM schon dafür ausgelegt 100% Usage zu haben und braucht dann zwar auch gut Strom und wrd warm, aber problematisch ist das nicht. Was tatsächlich immer gut warm wird (prinzipbedingt) und auch bei dir warm werden sollte, ist die PHY. Kannst du den Fehler eventuell durch Kältespray/Föhn oder durch mechanischen Stress auf der Platine irgendwie triggern? Alternativ die Software deaktivieren und über GPIO einfach den TX_EN Pin toggeln und schauen, ob das irgendwie verschwindet. Wo misst du dein TX_EN Signal? An der Phy, oder am Ausgang des STM?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.