Wie teste ich einen Kristallresonator an Bord?

Ich habe 2 Quarzkristallresonatoren in meiner Platine: 32,768 kHz & 20 MHz. Sie sind mit einem Freescale MC12311-Transceiver-IC verbunden, in den ein HCS08-Mikrocontroller eingebettet ist. Ich möchte testen, ob diese Kristalle richtig funktionieren oder nicht.

Verfügbare Werkzeuge : Oszilloskop, Frequenzmesser (Digitalzähler), Digitalmultimeter.

Wie sollte ich diese Tools verwenden, um die Kristalle an Bord zu testen ?

  • Hinweis : Der kapazitive Lasteffekt von Sonden sollte wahrscheinlich berücksichtigt werden. Wenn nicht, wäre die Messung nicht genau oder noch schlimmer, die Kristalle würden überhaupt nicht funktionieren.

Edit1 : Ich habe sowohl das Oszilloskop als auch den Frequenzmesser (mit x10-Sonden) verwendet, aber leider wurde überhaupt nichts überwacht.

Was für Sonden verwendest du? Es werden Bandbreiten von Sonden und Instrumenten benötigt. In der Atmel-Anwendungsnotiz AVR4100 finden Sie einige Tipps zum 32-kHz-Quarz.
Danke David für deinen Kommentar. (1) Eigentlich habe ich keine Informationen über die BW der Sonden; Es handelt sich um Standard-Utility-Tastköpfe, die standardmäßig mit den Oszilloskopen und Multimetern geliefert werden. (2) Ich habe den erwähnten Anwendungshinweis studiert. Es empfiehlt sich, das Mikro so zu programmieren, dass wir die Aktivität des Kristalls auf einem I/O-Pin überwachen können. Das Problem ist allerdings, dass ich das Mikro überhaupt nicht programmieren kann! Das ist eigentlich der Grund, warum ich den Kristall testen möchte!!
Sie werden wahrscheinlich nichts kaputt machen, wenn Sie die Oszilloskopsonde an den Resonatorausgang anschließen. Was ist die Marke und das Modell des Zielfernrohrs?
Es ist ein analoges Oszilloskop von Tektronix . Übrigens würde die kapazitive Last der Oszilloskopsonde die Messung beeinflussen. Wie auch immer, ist der Frequenzmesser nicht die bessere Wahl?
Ich bin mir ziemlich sicher, dass Sie die MCU ohne externe Uhren programmieren können sollten, also ist das ein anderes Problem als die Frage, ob die Kristalle in Ordnung sind oder nicht. Nach dem Hardware-Reset startet die MCU mit ihrem internen Oszillator.
Danke Dave für deinen hilfreichen Kommentar. Eigentlich habe ich das Hauptproblem hier gepostet , nämlich einen Power-Cycle-Fehler beim Programmieren/Debuggen/Löschen. Ich wäre Ihnen dankbar, wenn Sie auch einige Kommentare / Antworten zu diesem Thema hinterlassen würden. Danke im Voraus.
Ich würde einfach das Oszilloskop nehmen. Wenn es eine Wirkung der Sonden gäbe, würde dies einfach dazu führen, dass sich die Frequenz geringfügig unterscheidet. Aber Sie würden immer noch ein Taktsignal sehen. Stellen Sie sicher, dass Sie sich auf den Boden Ihrer Leiterplatte beziehen, nicht nur auf die andere Seite des Kristalls!

Antworten (4)

Wie ich sehe, wurde keine Antwort akzeptiert. Lassen Sie mich eine andere Antwort geben.

Die meisten modernen ICs verwenden sogenannte Pierce-Oszillatoren , um mithilfe von Quarzen stabile Takte zu erzeugen. Hier ist die Konfiguration der Hauptschaltung:

Geben Sie hier die Bildbeschreibung ein

Wie man sehen kann, ist die Schaltung nicht symmetrisch: Die rechte Seite ist der Ausgang eines Treibers (normalerweise als XO bezeichnet) und die linke Seite ist der Eingang eines invertierenden Verstärkers (normalerweise als XI bezeichnet). Daher ist es relativ sicher, das XO-Ende (Ausgang) zu prüfen, vorausgesetzt, dass die Sonde eine relativ hohe Impedanz hat. Eine übliche passive 1:10-Sonde mit 1 M Eingangsimpedanz sollte die Arbeit erledigen. In der Praxis wird der Ausgangstreiber im Schaltungsverstärker absichtlich schwach gemacht, typischerweise nicht mehr als 1mA belastbar, um zu verhindern, dass Xtal übersteuert wird, aber 1mA sollte gut genug sein, um eine 1M-Oszilloskopsonde zu treiben.

Die Kapazität der Sondenspitze kann die Oszillationsfrequenz um 20–50 ppm verschieben, da sie die Schaltungsabstimmung ändert (Xtal-Last, C1 in Reihe mit C2). Die Sondenlast am XO sollte jedoch keine Oszillationen unterbrechen, es sei denn, die gesamte Schaltung ist zu marginal und erfüllt nicht die Stabilitätskriterien (negative Impedanz des Verstärkers sollte 3-5 mal höher sein als Xtal ESR). Wenn die Sonde dies tut, betrachten Sie den Xtal-Test als fehlgeschlagen.

Man sollte niemals versuchen, den XI-Eingang zu testen, vielleicht nur mit einem 100-MOhm-Tastkopf und nur aus Neugier. Der Grund liegt nicht in der Spitzenkapazität (2-8-12 pF oder was auch immer), sondern darin, dass aufgrund der endlichen Sondenimpedanz dem XI-Pin eine DC-Verschiebung zugefügt wird. Der Pierce-Oszillator ist eine sehr empfindliche nichtlineare Schaltung und verfügt über eine sehr wichtige DC-Rückkopplungskomponente R1, die den Eingangs-DC-Pegel effektiv auf den Punkt der maximalen Verstärkung einstellt, normalerweise etwa auf halbem Weg von Masse zu Vcc. Die Komponente R1 beträgt normalerweise 1 MOhm und mehr, und die Schwingungen werden am selbstgewählten DC-Punkt zentriert. Selbst das Anbringen einer 10-MOhm-Sonde verschiebt diesen Punkt nach unten, die Verstärkung fällt ab und die Schwingungen sterben ab.

Und natürlich ist der beste Weg, um auf Schwingungen zu testen, es nicht mit Sonden zu berühren, sondern einen internen Puffer mit Ausgang zu einem anderen GPIO-Teststift zu haben.

Ich hatte einmal ein ähnliches Debugging-Problem mit meinen Atmel ATMEGA328P-Controllern, die 8-MHz-Keramikresonatoren funktionierten anscheinend nicht. Ich hatte ein Rigol-Zweikanal-Oszilloskop von Cheapo und hatte ein Arbeitsboard, das ich zuvor hergestellt hatte, mit einem Oszilloskop versehen, und das schöne 8-MHz-Signal war leicht zu sehen, ohne Probleme aufgrund der Belastung durch die Sonden. Sie sollten sich keine Sorgen über die Wirkung der Sonde auf den Kristall machen.

Das Hauptproblem, das ich fand, war, dass mein Controller, der den Kristall antreiben sollte, seine Sicherungen nicht richtig eingestellt hatte, um den externen Kristall zu verwenden. Nachdem ich die Sicherungen zur Auswahl des externen Quarzes durchgebrannt hatte, zeigten die Resonatoren Lebenszeichen!

Es ist also eigentlich ein guter Punkt, um sicherzustellen, dass Ihr Mikrocontroller, der mit dem Kristall verbunden ist, so eingestellt ist, dass er den Kristall verwendet, da sonst nichts vorhanden ist, um Strom in ihn zu treiben, um ihn zum Schwingen zu bringen. Sobald Sie sich vergewissert haben, dass dies der Fall ist, können Sie feststellen, ob es sich um PCB- oder andere Leiterbahnprobleme, Erdungsprobleme, falsche Pins usw. handelt.

Danke Kiran für deine Antwort. Als IDE verwende ich Codewarrior 10.4. Wissen Sie, wie Sie die Fuse-Bits in dieser IDE setzen?
Entschuldigung @ Omid1989, ich bin mit dieser IDE nicht vertraut. Ich habe wirklich nur AVRdude und Arduino und Atmel Studio für kleine Mikrocontroller und Code Composer Studio für einen ARM A8 verwendet. Es könnte ein separates Dienstprogramm zum Lesen und dann Schreiben der Sicherungen in ähnlichen Registerkarten/Bereichen zum Programmieren/Flashen von Zielchips haben. Sehen Sie sich in diesen Optionen nach den Sicherungseinstellungen um. Datenblätter können auch angeben, was die Sicherungs-/Registeroptionen sind, um externe Quarzeingänge auszuwählen.
Ich unterstütze das. Ich habe eine billige 10x-Sonde an einem billigen 13,598-MHz-Quarzausgang mit einer billigen IC-Pierce-Oszillatorschaltung verwendet, und alles hat gut funktioniert. Ich habe gerade den Kristall sondiert und er oszillierte mit 13,5 MHz, was so schnell ist, wie mein Oszilloskop die Frequenz berechnet.

Die externen Komponenten lassen den Oszillator symmetrisch aussehen, aber es gibt einen Verstärker auf dem Chip, der alles andere als das ist. Der Oszillator-Pin auf der Ausgangsseite hat eine niedrigere Impedanz, und das Anbringen der Oszilloskopsonde dort beeinflusst ihn nicht annähernd so stark wie das Sondieren des Eingangspins.

Wenn es oszilliert, hat der Ausgang eine größere Amplitude als der Eingang; es kann auch keine sehr gute Sinuswelle sein. Die Eingangsseite wird niedriger sein und sollte eine Sinuswelle sein (nachdem sie durch den Kristall gefiltert wurde).

Wenn es nicht oszilliert, ist der Eingang lauter und sollte etwa die Hälfte der Versorgungsspannung betragen. Der Ausgangsstift sieht sauberer aus und kann auf VDD oder Masse liegen. Einiges davon wird mit dem Design des Chips (und der Konfiguration) variieren.

Übrigens, Sie haben nicht gesagt, ob Sie die Frequenz genau messen oder nur sehen möchten, ob sie oszilliert.
Ich möchte sehen, ob es oszilliert oder nicht! Übrigens, was meinst du hier mit Input und Output?
Einige Kristalle haben einen Xin- und einen Xout-Pin mit jeweils einem Lastkondensator auf Masse. Das Signal wird etwas anders sein, aber für praktische Zwecke nicht wirklich. Der Treiber in einem Mikrocontroller oder einem anderen Gerät, das einen Kristall oder Resonator verwendet, ist im Grunde eine Oszillatorschaltung (mit Operationsverstärkern usw.). Deshalb müssen Sie tatsächlich den externen Quarzeingang für das Mikro aktivieren, um diese Peripheriegeräte einzuschalten.
Ich glaube, KyranF wollte "einige Kristalloszillatoren" sagen, da der Kristall selbst symmetrisch ist. Diese Pins befinden sich auf dem Mikroprozessor. Selbst wenn die Pins nicht mit Xin und Xout (oder OscIn und OscOut) beschriftet sind, verhalten sie sich sehr wahrscheinlich so, als ob sie es wären.
Wenn ich also am XO-Terminal eine etwas höhere Frequenz messe, sollte ich dieser Messung über die "richtigere" Frequenz am XI-Terminal vertrauen?
Eigentlich egal. Der XO war näher an dem, was er sein sollte, und das Puffern der Uhr aus einem GPIO wurde sogar noch näher am Nennwert gemessen.

Wenn Sie einen empfindlichen Kommunikationsempfänger haben, wie er im Amateurfunk verwendet wird, klemmen Sie einen Draht zwischen den Antenneneingang des Empfängers und das andere Ende einen Zoll von der Oszillatorschaltung entfernt, ohne die Schaltung auch nur zu berühren, und stimmen Sie den Empfänger auf die Kristallfrequenz ab. Sie sollten einen Beat hören. Und genau auf die Frequenz.