Quarz oder Oszillator

  • Um noch etwas über Quarze zu berichten. Ich experimentiere momentan selber mit MSP430-µControllern mit einem externen Uhrenquarz als Taktgeber. Warum? Weil die Dinger dann seeehr wenig Strom verbrauchen aber dennoch einige nützliche (Mess-)Funktionen ausführen können.


    Ich hatte hier ja schon einmal kurz im Thread "Pendeluhr" berichtet, wie ich einen simplen Versuch mit der DIP-Variante des µControlers durchgeführt habe. Das funktionierte auch reibungslos. Dem Controller können intern per Software verschiedene Kapazitäten zugeschaltet werden. Ich hatte 6pF eingestellt und die Schaltung funktionierte sehr gut, auch ohne externe Kondensatoren.


    simple_clock_pwm.png

    µController mit externem Uhrenquarz (32,768 kHz)


    Dasselbe habe ich mit einer SMD Variante (TSSOP) versucht, einfach weil ich wissen wollte, ob sich der Controller gleich verhält wie die DIP-Variante. Für den Fall, dass der Controller in einer dauerhaften Schaltung eingesetzt werden soll, würde ich nämlich ein PCB mit der kleinen SMD Variante vorziehen.


    Oszillator-PCBAdapter.jpg

    PCB-Adapter für SMD-Komponenten


    Also habe ich den Controller auf einen SMD-Adapter aufgelötet und diesen statt der DIP-Variante für die oben dargestellte Breadbord-Schaltung benutzt. Diese Adapter-PCBs gibt es recht günstig im Onlinehandel für verschiedenstes IC-Bauformen (Footprints). Auf dem Foto sieht man links, wie so ein Adapter aufgebaut ist. Er hat auf Ober- und Unterseite Leitungsbahnen für zwei verschiedene Footprints, welche die Pins eines µControllers mit an beiden Seiten einlötbaren Steckleisten verbindet.


    Mein erster Versuch mit solch einem Adapter schlug jedoch fehl. Der Oszillator wollte einfach nicht zu schwingen anfangen. Also habe ich auf dem Breadboard externe Kondensatoren zwischen den beiden Quarzanschlüssen und GND eingesetzt (15pF). Es hat nichts genutzt.


    Die Leitungswege zwischen Quarz und den XTAL Anschlüssen waren recht lang. Durch den Adapter kann der Schwingquarz auf einem Breadboard nicht so dicht an den Pins angebracht werden wie bei einem µController in DIP Bauform. Also habe ich den Chip auf einen anderen Adapter aufgelötet und die XTAL Pins nicht mit einem Steckleistenanschluss versehen, sondern den Quarz direkt an die µController Anschlüsse angelötet (Foto Mitte). Dafür habe ich die Lötlöcher verwendet, die eigentlich für die Steckleistenpins gedacht sind. Aber auch das hat nichts gebracht. Ich bekam keinen Arbeitstakt.


    Externe Kondensatoren mit einer Seite direkt an den Quarz zu löten und die andere Seite mit GND auf dem Breadboard zu verbinden, war ebenfalls erfolglos. Ich bekam einfach keinen Takt. Dann habe ich noch die Leiterbahnen auf der Unterseite des Adapters in Quarznähe weggekratzt, weil ich vermutete, dass die evtl. noch einen Einfluss haben. Es hat nicht geholfen.


    Darum habe ich einen eigenen Adapter entworfen (Foto rechts, Screenshot unten), der die Pads für das Auflöten von zwei SMD-Kondensatoren mitbringt. Diese sind auf der Unterseite (blau) angebracht, damit die Leiterbahnen von den µController-Pins, die nichts mit dem Quarz zu tun haben, ohne Umweg an die Steckleistenpins geführt werden können. Ansonsten besteht die Unterseite nur aus einer Kupferlage die an GND angeschlossen ist.


    MSP430X2XXX-PCB-Adapter.png

    PCB-Adapter


    Nachdem ich den µController abermals umgelötet habe (der hält ganz schön was aus - Foto oben rechts), hat mein erster Versuch ohne externe Kondensatoren auf Anhieb funktioniert. Ich hatte sofort einen passenden Takt. Aber nur einmal! ;(


    Nach dem Ausschalten und erneuten Anschalten bekam ich wieder keinen Takt. Ich habe erst versucht die verschiedenen internen Kapazitäten per Software zu verwenden aber es hat einfach nicht funktioniert. Also habe ich zwei 15pF Kondensatoren auf die dafür vorgesehenen Pads aufgelötet. Seit dem funktioniert der Oszillator anstandslos und stabil. Auch nach mehrmaligen An- und Ausschalten schwingt sich der Quarz zuverlässig ein.


    Der Einschwingvorgang dauert recht lange.


    Einschwingzeit.png

    Einschwingvorgang Uhrenquarz


    Wie man auf dem Oszillogramm sehen kann, erfolgte bei ca. -7,5 Sek. der Einschaltvorgang (0 auf 3V). Es steht ein Minus vor der Zahl, weil der Trigger rechts eingestellt ist. Dann passiert ca. zwei Sekunden erst einmal gar nichts, bis endlich bei ca. -5,4 Sek. der Oszillator zu schwingen beginnt. Allerdings ist das am Anfang auch noch nicht der endgültige Takt. Der stellt sich erst nach weiteren ca. 4,5 Sekunden ein. Danach schwingt der Oszillator sehr genau (gleichmäßig), in meinem Fall aber ein wenig zu schnell. Das sieht man an folgendem Maskentest


    Maskentest-1.png

    Maskentest


    Der Test lief eine halbe Stunde lang. Die weiße Umrandung ist der Rahmen in dem sich ein Signal bewegen kann. Das abgebildete Signal wird durch einen Timer einmal pro Sekunde erzeugt. Es ist nichts anderes als ein PWM-Signal. Käme es zu zeitlichen Schwankungen oder anderen Störungen, würde der Rahmen "verlassen" und ein Fehler erzeugt. Wie man sieht, ist in dem Messzeitraum kein Fehler aufgetreten, aber es ist ein Signal zu viel vorhanden.


    Es ist also noch etwas Feintuning angesagt und das muss ich noch genauer untersuchen.


    Fazit: Mit externen Taktquellen kann es komplizierter werden als man im ersten Moment denkt, weil da doch einiges zu beachten ist. Es sind zwar in Datenblättern und/oder Literatur Formeln zur Berechnung von Kondensatoren angegeben, nur, wie soll man mit seinem Heimequipment beispielsweise die Kapazität einer Leiterbahn messen? Die angegebenen Werte sind schwer zu fassen. Darum ist meiner bisherigen Erfahrung nach, einiges an Experimentierlust notwendig.


    Wenn man Quarze dann noch in irgendeinem Chinashop oder beim Onlinehändler ohne Datenblatt kauft, wird es auch nicht einfacher.

  • Hallo Kai,


    vielen Dank für deine Mühe.


    Ich glaube Du hast mal wieder Recht und ich hatte hier einen Denkfehler :/


    Habe nochmals nachgesehen ich hatte das mit den losen IC verwechselt.

    Diese werden ja meistens von Werk mit 1 MHz ausgeliefert und man könnte noch das einstellen.


    Intern 1 MHz

    Intern 8 MHz

    Extern 8 MHz

    Extern 16 MHz

    Extern 20 MHz


    Somit habe ich das jetzt verstanden, wenn man einen externen 16 MHz Quarz oder auch Oszillator verbaut läuft der IC auch mit den 16 MHz.


    Ich habe mir die Links von Hans und auch das Video von Dir angesehen.

    Werde das ganze einfach mal mit unterschiedlichen Bauteilen testen :thumbup:

  • Zitat

    Wie funktioniert das wenn ich einen Oszillator mit 16MHz verbaut habe und den IC jetzt nur mit 8 MHz laufen lassen möchte.

    Mann kann ja z.B. bei einem Arduino Board wo 16MHz verbaut sind auch auf 8 MHz problemlos runter regeln.

    Wirklich? Wie kommst du da drauf? Wenn man einen AVR-Controller auf 8 Mhz mit einem externen Quarz takten möchte, dann nimmt man auch einen 8Mhz Quarz.


    Zitat

    Dazu werden ja die Fuse-Bit verändert nur was wird hier genau im IC gemacht ?

    Die Fuse Bits werden verändert, um den Controller auf die externe Taktquelle einzustellen. Wenn die Einstellung gemacht wurde, wird der Controller ohne den Quarz nicht mehr funktionieren.


    Zitat

    Wir der Takt einfach von 16MHz auf 8 MHz per Software geteilt ?

    Oder wie funktioniert das genau ?

    Es funktioniert gar nicht. Jedenfalls nicht so, wie Du dir das vorstellst. Man kann die AVR-Controller mit verschiedenen Taktfrequenzen betreiben, wenn der interne RC- Oszillator verwendet wird. Ist ein externer Quarz angeschlossen, gibt der auch den Takt vor und der ist fest.


    Man kann allenfalls interne Funktionen wie z.B. Timer/ AD-Wandler usw. durch Taktteiler mit verschiedenen Taktfrequenzen betreiben. Der Haupttakt, ändert sich dadurch aber nicht. Die Teiler werden über Register per Software gesteuert.

    Zitat

    Nochmals zur Sicherheit, wenn ich einen Oszillator verbaue kann ich die 2 Kondensatoren die ein Quarz immer benötigt weglassen da der Oszillator diese bereits intern im Gehäuse verbaut hat richtig ?

    Ja. Der Oszillator wird, zumindest bei den gängigen AVR-Controllern, mit dem XTAL1 Anschluss verbunden. XTAL2 wird dann, im Gegensatz zur Schwingquarz-Variante, nicht beschaltet. Zu dem Thema Quarz an einem AVR-Controller gibt es gefühlt ungefähr eine „quadrillionen“ Webseiten mit sehr vielen Beispielen. Sogar hier im Forum (Thread Pendeluhr).

    Zitat

    Normal sollte es ja auch kein Problem sein einen normalen Quarz zu nutzen da im Datenblatt ja fast immer die empfohlenen Kondensatoren Werte mit dabei stehen.

    Wenn du die von Hans64 verlinkten Dokumente mal in Ruhe durchliest, wird Dir vielleicht klar, dass es auch auf den verwendeten Quarz ankommt, wenn man es genau haben will. Aber die in den Bauanleitungen / Datenblätter der Atmega angegebenen 12-22pf sind ein Wert, mit denen die gängigen Quarze zu schwingen beginnen sollten. Es kommt aber auch darauf an, wie der Quarz angeschlossen wird. Siehe verlinkte Literatur.


    Bei vielen Anwendungen ist es aber auch relativ egal, ob der Quarz nun mit genau 8 Mhz oder nur mit 7,99 Mhz schwingt.

  • Hallo Ihr zwei,


    vielen Dank für eure Mühe und die vielen Links.


    Vielen Dank Hans das wünsche ich Dir und dem ganzen Forum natürlich auch.


    Kai, das Video finde ich sehr gut vielen Dank.

    Das die Frequenz sich durch die Temperatur so schnell verändert hätte ich nicht gedacht =O



    Ich hätte hierzu noch eine Frage:


    Wie funktioniert das wenn ich einen Oszillator mit 16MHz verbaut habe und den IC jetzt nur mit 8 MHz laufen lassen möchte.

    Mann kann ja z.B. bei einem Arduino Board wo 16MHz verbaut sind auch auf 8 MHz problemlos runter regeln.

    Dazu werden ja die Fuse-Bit verändert nur was wird hier genau im IC gemacht ?

    Wir der Takt einfach von 16MHz auf 8 MHz per Software geteilt ?

    Oder wie funktioniert das genau ?


    Nochmals zur Sicherheit, wenn ich einen Oszillator verbaue kann ich die 2 Kondensatoren die ein Quarz immer benötigt weglassen da der Oszillator diese bereits intern im Gehäuse verbaut hat richtig ?


    Normal sollte es ja auch kein Problem sein einen normalen Quarz zu nutzen da im Datenblatt ja fast immer die empfohlenen Kondensatoren Werte mit dabei stehen.


    Oder wie denkt Ihr darüber ?


    Vielen Dank

    Nicole



  • Zu Schwingquarz und Oszillator hat der Hans64 ja schon einiges verlinkt. Da steht alles drin was man wissen muss/kann.


    Das Oszillatoren weniger anfällig für Temperaturschwankungen sind als Quarze, stimmt so pauschal nicht. In Verbindung mit dem µController bilden die externen Quarze ja auch einen Oszillator (logisch). Es gibt aber TCXO (Temperature Compensated Crystal Oscillator) für die das zutrifft.


    Die Kompatibilität bezüglich CMOS und TTL bezieht sich auf Logikbausteine. (H)CMOS (4XXX) die von 3-15V betrieben werden können und TTL Bausteine (74XXX, 74LSXXX usw.) die mit 5V betrieben werden. Außerdem gibt es noch Unterschiede beim Stromverbrauch und den Schaltzeiten. Genaueres dazu gibt es hier (Elektroniktutor) zu lesen.


    Was ICs oder eher Mikrocontroller/CPUs betrifft, ist die Angabe der Taktfrequenz i.d.R. ein Maximalwert, für den der Hersteller garantiert, dass das Device damit funktioniert, ohne Schaden zu nehmen. Natürlich kann man auch niedrigere Frequenzen nutzen. Das wird auch oft gemacht, wenn Schaltungen mögl. wenig Strom verbrauchen sollen. Weil mit steigender Taktfrequenz steigt die benötigte Leistung und Wärmeentwicklung.


    Man kann demnach µController/ CPUs auch mit einer höheren Taktfrequenz als angegeben betreiben (Übertakten). Allerdings hat das eine erhöhte Leistungsaufnahme und Wärmeentwicklung zur Folge, was den Kühlungsbedarf erhöht und sehr wahrscheinlich die Lebensdauer verringert.


  • Hallo Nicole,


    wünsche Dir und allen anderen im Forum ein gutes neues Jahr.

    Ich selbst habe beide Bauteile noch nie in einem Projekt verbaut. Ich kann nur folgendes dazu beitragen:

    Quarze selbst sind oft in Oszillatoren verbaut und dienen zur Schwingungs- und Frequenzerzeugung.
    Da der Oszillator ein fertiges Signal liefert, benötigt dieser nur einen Pin am IC, während der Quarz immer
    einen 2. Impuls benötigt um in die andere Richtung zu schwingen. Einsatz eines Quarzes oder Oszillator
    hängt von den unterschiedlichen Anforderungen ab.

    Tiefer bin ich nie in diese Materie eingestiegen und muss daher bei den anderen Fragen leider passen.
    Eventuell helfen Dir nachfolgende Seiten.

    https://de.wikipedia.org/wiki/Quarzoszillator
    https://www.wdi.ag/files/press…Quarz-oder-Oszillator.pdf
    https://www.all-electronics.de…pdf/73888/ei06-03-064.pdf


    Gruß

    Hans

  • Hallo zusammen,


    mich würde mal interessieren welches Bauteil Ihr für eure Projekte nutzt und wieso genau ?


    Ich habe es so verstanden:


    Ein Quarz benötigt noch zusätzlich 2 Kondensatoren und wird mit zwei Leitungen an den IC angeschlossen.

    Der Oszillator hat die Kondensatoren bereits intern verbaut und wird nur noch mit einer Leitung an den IC angeschlossen.


    Habe ich das soweit richtig verstanden ?


    Stimmt es auch, dass der Oszillator nicht so anfällig auf Temperaturschwankungen ist ?

    Und welche Rolle spielt der Ausgangspegel, hier gibt es ja CMOS, HCMOS, TTL was bedeutet das genau ?


    Wenn man einen IC hat der bis 20 MHz kann und man diesen aktuell nur mit 16 MHz betreiben möchte.

    Sollte man dann hier trotzdem ein Bauteil mit 20 MHz nutzen bzw. ist es überhaupt möglich die 20 MHz auf 16 MHz zu regeln ?



    Vielen Dank im Voraus

    Nicole