Ich habe seit ein paar Tagen versucht, dieses Problem zu lösen, indem ich mich über die typische Kristalloperation / -konfiguration informiert habe, und bin ratlos. Ich habe versucht, hier zu suchen, bin aber auf nichts Ähnliches gestoßen. Es tut mir leid, wenn ich meine Lösung irgendwo verpasst habe.
Ich versuche , eine RTC weg von einem externen Kristall zu betreiben einen PIC, aber die Kristalloszillationselemente nicht , wenn ich es erwarten, und wird unter anderen Umständen oszillieren, und ich kann keinen Sinn daraus machen. Ich bin zwar kein EE, also bin ich wahrscheinlich nur super ignorant.
Der Kristall: LFXTAL016178 . Ich bin mir ziemlich sicher, dass es sich um einen Parallelresonanzkristall handelt, da nichts aufgeführt ist. Die Ladekapazität beträgt 6 pF, was ich als ungewöhnlich empfunden habe? Ich bin mir nicht sicher.
Der PIC: PIC24FJ128GB204 . Ich habe den Kristall wie im Datenblatt angegeben angeschlossen, aber er bietet keine explizite Hilfe bei der Auswahl von Ladekondensatoren. Daher habe ich online nach anderen Ressourcen gesucht und sie gefunden, um mir dort zu helfen.
Der Aufbau: Ich habe aus einigen Quellen gesehen, dass eine gute Faustregel für , wobei und eine Streukapazität zwischen 2 und 5 pF hinzugefügt werden . Ich habe für beide Kondensatoren einen mittleren Wert von 6 pF gewählt, und ich bin mir immer noch nicht sicher, wie schlecht diese Auswahl war. C1C2
Hier ist ein Bild meines Schaltplans: Layout:
Fälle, in denen es nicht funktioniert:
- Wie im Schaltplan, mit 6pF-Lastkondensatoren auf beiden Pins, schwingt es nicht. Es sei denn, es schwingt alle 10 Minuten oder so.
- Wenn die Kondensatoren entfernt sind, oszilliert sie extrem langsam, möglicherweise ungefähr 2,5-mal langsamer, als es sein sollte. Ich habe diese Geschwindigkeit nicht gemessen.
- Mit zusätzlichen 6pF-Kondensatoren, die oben aufgelötet sind, um 12pF-Kondensatoren zu erhalten, schwingt es nicht.
- Mit 3 pF Kondensatoren und einem 10 MOhm Widerstand über den Pins. (RTCC-Uhr ist unberechenbar.)
Fälle, in denen es funktioniert :
- Wenn ich den SOSCI-Pin mit einem Oszilloskop prüfe. In den ersten drei oben genannten Fällen startete die Sonde, sobald ich den SOSCI-Stift berührte, und gab mir eine schöne, saubere Sinuswelle. Dies geschah nicht, als ich den SOSCO-Pin berührte, ODER als ich 3pF-Kondensatoren verwendete. Ich weiß, dass es vorher nicht funktioniert hat, da einige LEDs im Sekundentakt blinken sollen, die nur bei angeschlossener Sonde blinken. (Ich weiß nicht alles über Oszilloskope, ich weiß nur, wie man sie bedient. Die Sonde zeigt 6 MHz / 1 MOhm / 95 pF an, und das Oszilloskop zeigt 60 MHz / 1 GS / s und 300 V CAT II an, an dem die Sonde angeschlossen ist. Es ist eine Tektronix TDS 2002, wenn das irgendjemandem etwas bedeutet.)
- Wenn ich einen 330 Ohm Widerstand zwischen SOSCI und Masse verbinde. Es ist einer von zwei Widerständen, die ich zur Hand habe; die 10k schienen so zu sein, dass sie mit ungefähr der halben richtigen Frequenz betrieben wurde.
- Mit 3 pF Kondensatoren, jedoch bei 14 kHz.
Hier sind einige Frequenzen, die ich gemessen habe:
- (12 pF Caps) Frequenzberührungssonde zu SOSCI: 32,7674 kHz
- (12 pF Caps) Frequenzausgabe von PIC mit dem 330-Ohm-Pulldown bei SOSCI: 32,764 kHz
- (12 pF Caps) Frequenzausgabe durch PIC unter Verwendung von LPRC: 32,68 kHz
- (3 pF Caps) Frequenzausgabe per PIC: 14,08 kHz
Grundsätzlich möchte ich wissen, warum es manchmal perfekt oszilliert, wenn ich eine Oszilloskop-Sonde verwende, und wie die richtige Lösung aussehen sollte, damit es so funktioniert, wie ich es möchte.
quelle
Antworten:
Der MCU-Hersteller ist wahrscheinlich schuld. Es gibt absolut keine Entschuldigung dafür, einen modernen MCU-RTC-Oszillator nicht so zu konstruieren, dass er zuverlässig mit jedem handelsüblichen 32-kHz-Quarz funktioniert.
Leider ist das Gegenteil viel häufiger, wie Sie bereits festgestellt haben - in Ihrem Fall wird im MCU-Datenblatt nicht erwähnt, dass die 6pF-Lastkapazität nicht funktioniert.
Das Grundproblem besteht darin, dass es sich um ein System aus zwei Komponenten handelt , die von zwei verschiedenen Herstellern hergestellt werden. Einer von ihnen spricht Silizium und der andere Quarz, und sie haben sich nie darauf geeinigt , den Designern zu sagen, wie ihre Produkte zuverlässig zusammenarbeiten.
Wie Sie herausgefunden haben, kann der Kristalloszillator eine Falle für Unermüdliche sein. Ich habe gesehen, wie eine große Automobilproduktionslinie aufgrund von Startproblemen mit Quarzoszillatoren zum Stillstand gekommen ist!
Wie auch immer, um zu Ihrer Frage nach dem WARUM zu gelangen , stehen vier wichtige Parameter auf dem Spiel:
Ausgangsimpedanz des MCU-Oszillators. Dies ändert sich über die Frequenz und wird häufig durch Konfigurationsbits wie "Laufwerkspegel" oder "Leistungspegel" verkompliziert. Ich habe diese von keinem MCU-Hersteller angegebenen / garantierten Werte gesehen.
Eingangsimpedanz des externen Kondensator-Kristall-Kondensator "pi" -Netzwerks. Dies wird hauptsächlich durch den Kondensator auf der Eingangsseite bestimmt, der wiederum durch die vom Kristallhersteller festgelegte Lastkapazität bestimmt wird.
Spannungsgewinn (tatsächlich Verlust) der externen Cap-Xtal-Cap "Pi" -Schaltung bei Resonanz. Dies wird hauptsächlich durch den internen äquivalenten Serienwiderstand (ESR) des Kristalls bestimmt. Der von Ihnen erwähnte Kristall gibt ESR = 50k an. Der Widerstand steigt auch mit zunehmendem Alter (da Feuchtigkeit / Verunreinigungen in das Kristallgehäuse eindringen) und wird auch von der Löttemperatur / -zeit beeinflusst. (Verunreinigungen im Kristallgehäuse verdampfen und setzen sich auf dem Quarz ab.) Der ESR kann auch zwischen den Herstellungschargen erheblich variieren. 50k ist ein ziemlich typischer ESR für einen 32kHz-Kristall - der niedrigste Wert, den ich bei 32kHz für Kristalle mit kleinem Formfaktor gesehen habe, ist 30k.
Damit ein Oszillator funktioniert, muss die Gesamtspannungsverstärkung, die sich aus (3) und (4) ergibt, > 1 sein. Außerdem muss die Phase der Verstärkung (ja, die Verstärkung ist eine komplexe Zahl) 360 Grad betragen. Etwa die Hälfte der Phase, 180 Grad, wird vom invertierenden Verstärker bereitgestellt, und die "zweite Inversion" wird vom cap-xtal-cap-Netzwerk bereitgestellt.
Hier ist eine einfache Online-Simulation , mit der Sie ein Gefühl dafür bekommen, wie Verstärkung, Ausgangsimpedanz und Kondensatorwerte interagieren und sich auf den Start auswirken. Klicken Sie mit der rechten Maustaste auf eine Komponente, um ihren Wert zu ändern. (Hinweis: Diese Simulation verwendet eine Restkondensatorspannung von 1 mV, um den Anlauf zu fälschen. In der Realität ist jedoch das Rauschen im Verstärker die Quelle des Anlaufs, wie in dieser )
Also, was ist in deinem Fall passiert? Höchstwahrscheinlich hat der Entwickler des MCU-Oszillators seine Ausgangsstufe so ausgelegt, dass sie zuverlässig mit 12,5 pF geladenen Kristallen funktioniert. Bei einer Belastung von 6 pF wurden entweder die Anforderungen an die Spannungsverstärkung oder die Phase einfach nicht erfüllt. Da im Datenblatt nichts über die Konstruktionsannahmen angegeben ist, ist voila ein Problem für Sie - und viele andere.
Wow, was sollte ein Embedded Designer tun?
Denken Sie immer daran, dass ein Grenzkristalloszillator Ihr Unternehmen viel Geld kosten kann.
Zweitens könnte Ihre beste Investition in Anbetracht der obigen Ausführungen ein externer 32-kHz-Oszillator mit niedriger Leistung sein , insbesondere wenn Ihnen Erfahrung fehlt oder wenn Ihr MCU-Anbieter keine Kristallparameter im Datenblatt angibt.
Stellen Sie drittens sicher, dass Sie einen Quarz mit dem von Ihrem MCU-Hersteller angegebenen ESR und der angegebenen Kapazität verwenden. Wenn Sie im Datenblatt keine finden, fragen Sie Ihren Lieferanten nach einer Liste der empfohlenen Kristall-Teilenummern oder wählen Sie eine MCU, die dies tut.
Viertens testen, testen, testen! Über alle Spannungen und Temperaturen . Beachten Sie, wie lange der Start dauert, indem Sie die Zeit in der Firmware möglichst mit einer RC-Uhr einstellen. Wenn die Produktionseinheiten die Norm beispielsweise um das Zweifache überschreiten, lassen Sie die Testfirmware ein Flag setzen, damit dies beim Testen in der Produktion bemerkt werden kann. Auf diese Weise können Produktionseinheiten mit Randoszillatoren nicht aus der Tür herauskommen, ohne dass Alarmglocken läuten.
Was machen erfahrene Produktionsprüfer?
Sie umgehen den allgemeinen Mangel an korrekten Informationen, indem sie eine 10-fache Sicherheitsspanne zwischen "Was funktioniert" und "Was funktioniert zuverlässig" fordern. Sie messen den tatsächlichen ESR und fügen dann eine zusätzliche 10-fache "Handicap-Beständigkeit" in Reihe mit dem Kristall hinzu cap-xtal-cap-Netzwerk. Wenn das "behinderte ESR" -System über alle Spannungs- und Temperaturkombinationen hinweg arbeitet , wird davon ausgegangen, dass die 10-fache Sicherheitsmarge ausreicht, um die unbekannten Schwankungen sowohl der ESR- als auch der MCU-Verstärkung abzudecken. Dies wird teilweise in Abbildung 3 dieser Application Note erläutert .
Was sollte man tun?
Wenn Sie den obigen Test aus irgendeinem Grund nicht durchführen können und ein Produkt zu Tausenden verkaufen möchten, ist es mit Sicherheit besser , wenn Sie die zusätzlichen Kosten für einen handelsüblichen 32-kHz-Oszillator von einem Oszillatorhersteller investieren, der all diese Tests durchgeführt hat Sie oder indem Sie zu einer MCU wechseln, die einen bestimmten Kristall (oder Kristallanforderungen) im Gerätedatenblatt angibt.
Während Sie die Situation möglicherweise durch Auswahl eines Kristalls mit geringerem Innenwiderstand und / oder durch Spielen mit anderen / asymmetrischen Kondensatorwerten "beheben" können, ist Ihre Lösung aus den oben erläuterten Gründen möglicherweise immer noch marginal.
TL; DR:
Kristalloszillatoren können Ihr Unternehmen viel Zeit und Geld kosten. Verwenden Sie nach Möglichkeit einen externen Oszillator oder führen Sie den oben beschriebenen "Handicapped ESR" -Test über alle Spannungs- und Temperaturbereiche durch.
Verwenden Sie zum Schluss NPO-Kondensatoren, um die Temperaturstabilität zu gewährleisten.
quelle
Es gibt zwei wichtige Dinge:
Stellen Sie sich eine Seite eines Kristalls vor, der mit einer Sinuswelle mit der Kristallfrequenz angetrieben wird. Dieses Signal ist niederohmig. Die Lastkapazität ist die Kapazität, die Sie auf die andere Seite des Kristalls legen, um eine Phasenverschiebung von 180 ° zu verursachen.
Die Phasenverschiebung solcher Kristalle ändert sich schnell als Funktion der Frequenz bei der Betriebsfrequenz der Kristalle. Da die Phase in Abhängigkeit von der Frequenz genau bei der Betriebsfrequenz sehr steil ist, ist dies eine gute Sache für die Treiberschaltung, um sicherzustellen, dass der Kristall bei der beabsichtigten Frequenz arbeitet. Diese Schaltkreistypen schwingen optimal, wenn der Kristall die Eingangsphase um 180 ° verschiebt. Da dies nur durch eine geringe Frequenzänderung beeinträchtigt wird, liegt die resultierende Oszillation sehr nahe an der beabsichtigten Frequenz des Kristalls.
Nun zurück zu Ihrer Schaltung. Der große Hinweis ist, dass alles funktioniert, wenn Sie eine Oszilloskop-Sonde an den Oszillatoreingang anschließen. Was das macht, ist das Hinzufügen von Kapazität auf der Ausgangsseite des Kristalls. Anscheinend bewirkt die zusätzliche Kapazität der Oszilloskopsonde bei der von Ihnen vorgenommenen Einrichtung, dass der Kristall die Phase um den für das System geeigneten Betrag verschiebt, um zu schwingen. Wenn Sie mehr Kapazität selbst hinzufügen auf den Kristall nur ausgegeben , replizieren Sie die Wirkung der Oszilloskopsensor und die Dinge funktionieren. Versuchen Sie es zunächst mit weiteren 10 pF.
Verwenden Sie keine Formeln, die Sie am anderen Ende des Internets finden, ohne sie zu verstehen. Die Gleichung, die Sie zeigen, enthält eine Reihe von Annahmen, von denen einige nicht gültig sind. Leider gibt es da draußen eine Menge konventioneller Dummheit in Bezug auf Kristalle.
Der Kristall selbst ist nur ein Gerät mit zwei Anschlüssen und "weiß" nichts über Ihre Schaltungsmasse. Letztendlich ist die Ladekapazität das, was an den Anschlüssen anliegt. Die konventionelle Dummheit besagt daher, zwei gleiche Kondensatoren auf jeder Seite des Kristalls zu erden. Da diese in Reihe geschaltet sind, muss jede doppelt so groß sein wie die gewünschte Kapazität. Unabhängig davon, welche Streukapazität gegen Erde sich Ihrer Meinung nach auf jeder Seite des Kristalls befindet, muss von diesen Kapazitäten abgezogen werden.
Das Problem bei der herkömmlichen Dummheit ist, dass sie die Impedanz des Quarztreiberausgangs ignoriert. Man betrachte den Extremfall, bei dem dies 0 ist. In diesem Fall ist die auf der Eingangsseite des Kristalls hinzugefügte Kapazität völlig irrelevant, da sie parallel zur Impedanz 0 des Treibers liegt. Die Belastung des Kristalls ist dann nur die Kapazität an seinem Ausgang.
Mach ein bisschen Mathe. Die Impedanz von 6 pF bei 32,8 kHz beträgt 810 kΩ. Nun ist die Impedanz des Quarztreibers sicherlich nicht Null, sondern relativ zu 810 kΩ höchstwahrscheinlich signifikant.
Überlegen Sie, was die einzelnen Kappen wirklich bewirken. Der am Eingang lädt den Quarztreiber. Der Hauptzweck davon ist, einige der Harmonischen zu dämpfen, die aus dem Treiber herauskommen. Dies schlägt weniger auf den Kristall und macht es weniger wahrscheinlich, dass das gesamte System mit einer Harmonischen schwingt. Kristalle haben komplexe Übertragungseigenschaften. Sie können bei Oberschwingungen dieselben Eigenschaften aufweisen wie bei der vorgesehenen Betriebsfrequenz. Einige Kristalle sind so geschnitten, dass sie absichtlich bei Obertönen verwendet werden können, die in der Industrie als Obertonmodus bezeichnet werden.
Die Kapazität am Ausgang ist die wahre "Last" -Kapazität. Seine Reaktanz wirkt der des Kristalls entgegen, um das Ergebnis um den richtigen Betrag bei der richtigen Frequenz zu phasenverschieben.
In Ihrem Fall ist der Kristall für eine Last von 6 pF ausgelegt, und das ist es, was Sie an seinem Ausgang anlegen. Das hätte funktionieren sollen. Ich vermute, was passiert, ist, dass die Kappe am Eingang des Kristalls, wirklich am Ausgang des Kristalltreibers, auch eine Phasenverschiebung verursachte, die gegen die der Ladekappe wirkte. Versuchen Sie als Test, die Kappe des Kristalleingangs zu entfernen und die 6 pF am Ausgang zu belassen. Es wäre schön, die Wellenform auf dem Kristalleingang zu sehen, aber selbst eine 10-fach-Scope-Sonde könnte dies ändern. Versuchen Sie es trotzdem, aber stellen Sie sicher, dass die Oszilloskop-Sonde auf die höchste Impedanz und damit auf die niedrigste mögliche Kapazität eingestellt ist.
quelle
Die beiden Kappen und der Kristall arbeiten als 180-Grad-Phasenverschiebung. Die Größen der beiden Kappen (Verhältnis) bestimmen das Spannungsübertragungsverhältnis. 6Pf klingt ein wenig klein, die Frage ist, wo liegt der Auslegungspunkt für die parallele Kristalllast? Sie möchten nicht weit von diesem Wert entfernt sein. Ich habe normalerweise 27pf auf jeder Seite.
Ich sehe auch eine Sode, wenn der Kristall direkt an den Prozessorausgang gebunden ist. Diese Ausgabe kann niedrig sein Z, was einen Kristall übersteuern kann. Denken Sie daran, diese Antriebsspezifikation dieser Uhrkristalle ist winzig, sehr leicht zu überfahren. Eine Serie R von 100 K kann verwendet werden, um den Kristallantrieb zu verringern.
Stellen Sie sicher, dass der Prozessor über einen internen 1 - 10 Meg-Bias-Widerstand von Ausgang zu Eingang verfügt. Sie haben erwähnt, dass es beim Berühren mit einem Oszilloskop-Prob zu schwingen beginnt. Dies kann ein Problem mit der Gleichstromvorspannung sein (10-Megapixel-Sonde, denke ich) oder wahrscheinlich die Sondenkappe, die das Übertragungsverhältnis des abgestimmten Schaltkreises einstellt.
Seien Sie wirklich sauber (kein Streufluss) und wirklich kurze Drähte. Es ist eine echte Hi-Z-Schaltung.
Bob K.
Außerdem: Die "Standard" -Sonden, die ich verwende, sind x 100, da sie die geringste Kapazität bieten. Ich erinnere mich an ca. 1,5 pF. Die Verwendung von x 10 ist auf dieser Schaltung schwierig, x 1 ist unbrauchbar. Ues x 100 und erhöhen die vertikale Verstärkung des Oszilloskops, damit das Oszilloskop-Frontend seine Arbeit erledigt. X 1-Sonden sind für hohe Z-Werte oder hohe Geschwindigkeiten nahezu unbrauchbar. Sie werden die x 100 lieben, die digitale Arbeiten ausführt, da die GND-Clip-Ströme um den Faktor 10 niedriger sind. Probieren Sie es aus.
quelle
Bei 32 kHz handelt es sich nicht um typische Kristalle mit XT / AT-Schliff, sondern um Digitaluhr-Kristalle, winzige "Stimmgabeln" mit einer Länge von einigen mm.
Da es auf Berührung reagiert, ist die vom PIC gelieferte Gleichstromvorspannung möglicherweise falsch. Versuchen Sie, einen großen Widerstand zwischen den Oszillatorstiften (10Meg, sogar 22Meg) hinzuzufügen.
Es ist möglich, dass Ihr Kristall durch Overdrive beschädigt wird. (Eine Literaturstelle schlägt vor, über 100 K Widerstand zwischen dem SOSC-Stift und dem Kristall vorzusehen.)
Für viele Informationen lesen Sie die technischen Datenblätter für ältere Chips mit Oszillatoren, die diese niederfrequenten Stimmgabelkristalle verwenden ...
Seite 10 hier: http://www.abracon.com/Support/Tuning-Fork-Crystals-and-Oscillator.pdf
http://www.ti.com/lit/an/slaa322d/slaa322d.pdf
PS: Ich stelle fest, dass die elektronische Goldmine derzeit billige Stimmgabeln mit "Uhrenkristallen" und ungewöhnlichen Frequenzen hat, nicht mit 32 kHz
quelle
Nach meiner Erfahrung und den meisten OEMs wie TI empfehlen wir 1MOhm externes Feedback, nicht 10M welches bereits im Inneren. Stimmgabelresonatoren haben einen hohen ESR und viel niedrigere uW-Schadensschwellen als Kristalle im XT-Modus oder AT-Schnitt.
.Warnung. Wenn Sie Mfg oder OEM App Notes ignorieren, kann es beschädigt werden.
Dies ist ein Parallelschwingkreis. Die Resonanz ist eine hochohmige 180-Grad-Phasenverschiebung, die nach der Inversion eine positive Rückkopplung ergibt. Intern gibt es eine 10 M Ohm hohe R-Rückkopplung, die bei Gleichstrom dazu dient, den Eingang bei Vdd / 2 selbst vorzuspannen, um eine Rechteckwelle mit einer durchschnittlichen Gleichspannung von Vdd / 2 zu erzeugen.
Wenn der Eingangs-DC nicht in der Nähe dieses Wertes liegt, Vdd / 2, wo er als linearer invertierender Verstärker arbeitet, bleibt der Ausgang bei "1" oder "0". Ich würde erwarten, dass 330 Ohm zwischen dem SOSCI-Eingang und Vss oder Vdd die Vorspannung ausreichend verschieben und den Takt stoppen. Dies widerspricht Ihren Tests mit 330 Ohm bis 0V und ist nur dann sinnvoll, wenn Sie In und Out vertauscht haben, da dies nur der Ausgang SOSCO ansteuern kann.
Die Bewegungskapazität beträgt nur etwa 3,5 fF (Fentofarad) mit einer Induktivität von etwa 35 kH und einem ESR von 35 bis 70 kOhm. Dies definiert die optimalen Resonatorparameter, um mit 32768 Hz zu schwingen. Das Q ist> 10k.
Wenn Sie die App von Microchip lesen. Beachten Sie, es empfiehlt; Eine davon ist http://ww1.microchip.com/downloads/en/AppNotes/00001798a.pdf
Ihr einziger großer Konstruktionsfehler war, dass die Kupferfüllung um alle Spuren herum zu viel Kapazität hinzufügt und die Phasenverschiebungsrückkopplung von 180 auf 90 Grad verringert. Wenn die Schleifenverstärkung nicht ausreicht, wird sie nicht oszillieren oder eine geringere Resonanz erzwingen. Dieses Layout zwingt Sie dazu, ein xtal zu wählen, das größere Belastungsgrenzen für die Stabilität benötigt, um die Barkhausen-Kriterien zu erfüllen.
Obwohl die Empfehlungen von Microchip die Marge verbessern, haben sie keine Benutzer erwartet, die aggressive Kupferfüllspalten <0,1 mm verwenden.
Die 1: 1-Sonde hat zu viel Erdinduktivität und Koaxialkapazität, und 1M stört auch die DC-Vorspannung des Eingangs.
quelle