Hintergrund:
Ich habe eine Reihe von Geräten auf Basis des W5100-Chips gebaut, alle funktionierten mehr oder weniger anständig. Die letzte Charge, die sich derzeit im Test befindet, zeigt jedoch ein fehlerhaftes Verhalten - fast alle. Es hat mich sehr verwirrt und verärgert, da ich die gleiche Art von Teilen verwendet habe, die ich zuvor verwendet habe, aber das Verhalten unterscheidet sich definitiv von früheren Chargen. Das fehlerhafte Verhalten zeigt sich als unterbrochene Kommunikation, PHY zurücksetzen, RX-Stürme, wenn tatsächlich keine Pakete im Netzwerk vorhanden sind.
Nachdem ich den Chip ausgetauscht hatte (in der Annahme, dass er defekt ist oder ich ihn irgendwie gebraten habe) ohne Ergebnis, entschied ich mich, alle anderen Teile nacheinander auszulöten und durch 100% getestete Teile zu ersetzen, um herauszufinden, wann sich das Verhalten ändert. Ich habe zuvor gekaufte und getestete Teile und Teile von Intel-Netzwerkkarten basierend auf 82546 verwendet. Magjack - keine Änderung, 0,1-uF-Kappen - keine Änderung, 4 * 49,9-Ohm-Widerstände - keine Änderung.
Zu meiner großen Überraschung wurde das Problem gelöst, als ich den 25-MHz-Quarz von der Intel-Karte zusammen mit den entsprechenden Kappen von dieser Karte ersetzte. Jetzt funktioniert W5100 perfekt ohne Probleme.
Dies weist darauf hin, dass das an W5100 angeschlossene Takterzeugungssystem falsch funktionierte. Ich habe ein Oszilloskop und habe ein sinusförmiges 25-MHz-Signal gemessen und dachte nicht, dass es etwas anderes geben sollte. Jetzt denke ich, dass es nicht nur auf die Form des Signals ankommt, sondern auch auf das Timing - wenn es konstant 25 MHz ohne Frequenzdrift hat und die Art der Schaltung, die mit der Takterzeugungsschaltung verbunden ist. W5100 hat *5 PLL im Inneren, und sicherlich kann eine Drift der Eingangsfrequenz die PLL verwirren - mit anschließender Verwirrung der angeschlossenen Logik.
Hintergrund der Frage:
Also fing ich an, mich mit der Takterzeugungsschaltung und ihren Betriebsgrundlagen zu beschäftigen. Ich habe mich noch nie damit beschäftigt, also war es neu für mich. Nützliche Informationen habe ich hier auf Seite 16 und hier in der Antwort gefunden .
Der von mir verwendete Kristall hat 25 MHz, 3-polig (der 3. Stift ist der Körper des Kristalls), eine Lastkapazität von 30 pF und eine Frequenztoleranz von 27 ppm. Wenn ich mir das Datenblatt des W5100 ansehe, sehe ich die folgenden Anforderungen:
Also mein Kristall ist ein bisschen außerhalb der Lastkapazität, aber es ist nur ein bisschen. Könnte es die Ursache sein, die ich mich gefragt habe und ob ich diesen Kristall trotzdem zum Laufen bringen kann? Es schien, dass ich kann!
Gemäß diesen cleveren Formeln sollte ich bei Verwendung dieses Kristalls und unter Berücksichtigung der maximal empfohlenen Streukapazität an jeder Seite meines Kristalls Kappen von 46 pF verwenden:
30 = (x^2 / (2x)) + 7
23 = x/2
x = 46
Der nächste reale Wert ist 47 pF.
Das war eine große Überraschung für mich, dass das Löten von 47-pF-Kappen, die ich zur Hand hatte, dazu führte, dass der W5100 ordnungsgemäß funktionierte! WTF, dachte ich?
Ich beschloss, mir das Datenblatt des W5100 genauer anzusehen.
Cl = 18^2 / (18*2) + Cs
Einnahme von Cs ~ 7
Kl = 9 + 7 = 16
Was zum Teufel sagt das Datenblatt, ich brauche einen Kristall mit einer Lastkapazität von 27 pF, wenn die Schaltung 16 pF annimmt? Wenn die Interna des winzigen W5100-Chips weitere 11 pF hinzufügen - und ich bezweifle dies aus einem einfachen Grund -, erwärmt sich der Chip während des Betriebs stark, und das Einsetzen von Kapazität in den Chip lässt ihn mit der Temperatur driften (selbst wenn es sich um eine NP0-Art handelt).
Frage selbst:
Aktualisieren:
Haben Sie den Lagenaufbau der Leiterplatte spezifiziert und gemessen?
Nein, ich habe keine Ausrüstung dafür. Ich dachte nicht, dass es so wichtig sein sollte, wenn ich den Richtlinien des Herstellers folge und das Design vom WIZnet überprüfen lasse (wollte "genehmigt" sagen, aber das ist nicht der Fall :)
Ist es das gleiche wie in anderen Chargen?
Alle Platinen werden vom gleichen Hersteller in China hergestellt, und das Layout ist (war) gleich.
Ein Vorspannungswiderstand gibt dem internen ungepufferten Wechselrichter eine negative Rückkopplung, um sicherzustellen, dass er korrekt vorgespannt ist. Ich bin mir nicht sicher, nachdem ich Ihre Frage gelesen habe, ob Sie einen verwendet haben oder einer in Ihrem Chip enthalten war.
Es ist da und war schon immer da, in die Platine gelötet. Die Kappen waren die gleichen wie in der vorherigen Charge; 1-MOhm-Widerstände sind für alle Chargen gleich. Quarzoszillator wurde immer vom gleichen Händler bezogen. Ich hatte 2 von mehreren Dutzend Platinen in der vorherigen Charge defekt - aus dem gleichen Grund habe ich fast alle in dieser Charge defekt, aber ich habe damals NICHT weiter nachgeforscht, weil ich dachte, dass es ein Problem mit dem Löten oder etwas anderem ist.
"Nach dem Austausch des Chips" war das aus der gleichen Charge?
Neu in einem anderen Geschäft gekauft, Datumscode war anders.
Ich schlage auch vor, dass Sie das PCB-Layout zeigen.
Sie sollten den Kristall mit Kappen und Widerständen im Stromkreis leicht lokalisieren können. Kurze Leiterbahnen, nah am Chip, keine Leiterbahnen oben oder unten, die den Betrieb beeinflussen, leerer Raum ist mit GND gefüllt (nicht auf diesem polygonlosen Bild zu sehen).
Kappen und Widerstand sind oben, Kristall wird durch das Loch von unten eingeführt. Zwei Widerstände links oben sind für die PHY-Referenzspannung. Kristall hat 3 Stifte, wobei die Mitte geschliffen ist (Kristallkörper).
Bitte beachten Sie , dass ich in meinen Fragen nicht nur darum bitte, mir bei der Lösung meines Problems zu helfen und zu prüfen, ob ich die Dinge richtig gemacht habe, sondern auch darum bitte, die WIZnet-Dokumentation und die Angaben im Datenblatt zu überprüfen, um festzustellen, ob sie falsch sind und / oder müssen ihre Dokumentation (Datenblätter und/oder Referenzschemata) ordnungsgemäß aktualisieren, damit andere von Anfang an richtig handeln.
Frage 4 - Die Takterzeugungsschaltung des W5100 verfügt über einen 1-MOhm-Widerstand parallel zum Quarz. Ändert es die Formel und wie?
Sie müssen den 1-MOhm-Widerstand gemäß dem Schaltplan einsetzen, damit die Taktschaltung korrekt und zuverlässig funktioniert: -
Wenn der Widerstand nicht im Chip integriert ist, muss er extern angebracht werden. Es gibt negatives Feedback an den internen Puffer und spannt seinen Eingang genau am richtigen Punkt für eine optimale Oszillation vor.
Eine erforderliche Frequenztoleranz von 30 ppm ist eine ziemlich strenge Anforderung für Ihre Schaltung, insbesondere über einen bestimmten Temperaturbereich.
Offensichtlich versuchen Sie, die erforderlichen Obergrenzen zu berechnen, aber da Sie die Streu- und Eingangskapazität Ihrer Schaltung nicht kennen, sind Ihre Berechnungen (fast) nutzlos.
Was Sie tun müssen, ist, die Uhr tatsächlich mit einer <1pF-Sonde und einem >9-stelligen Präzisionszähler zu messen. Dann können Sie die Kappen feinabstimmen, bis Sie bei Raumtemperatur eine Abweichung von weniger als 5 ppm erhalten.
Letztendlich müssen Sie Ihre Leiterplatte in der Produktion definieren und überwachen, denn wenn Sie in einer Charge einen Unterschied im Schichtaufbau haben, werden die 30 ppm leicht überschritten.
Stefan Wyss
Andi aka
Alter Furz
Anonym