Forum: Mikrocontroller und Digitale Elektronik Schwingquarze und ihre Kapazität


von Chris K. (dexter86)


Lesenswert?

Hallo!

In meinem aktuellen Projekt verwende ich einen RTC Baustein, welcher 
einen Uhrenquarz (32.768 KHz) benötigt.

Diesen habe ich, da ich ihn bei der Bestellung bei einem online 
Versandhaus vergessen hatte beim örtlichen Conrad erstanden. Bei der 
Frage nach der Kapazität sagte der Mitarbeiter schlicht "Wir haben nur 
diese".

Im Datenblatt fand ich dann heraus, dass die Kapazität mit 7pF angegeben 
wird.

Im Datenblatt der RTC steht, dass diese auf die Zusammenarbeit mit einem 
6pF Quarz optimiert wurden.

Nun habe ich den Effekt dass meine RTC VIEL zu schnell läuft. Sie gibt 
ca 70 Sekundentakte / Minute. Interessanterweise in etwa in dem 
Verhältnis zu viele Takte in dem auch der Quarz zu viel Kapazität hat.

Ich hätte zwar damit gerechnet, dass Sie durch den Unterschied nicht 
Atomuhr genau läuft aber dass hätte ich nicht erwartet. Vermutlich 
verstehe ich dafür zu wenig von der dahinterliegenden 
Oszillatorschaltung.

Meine Frage ist, was bedeutet die Kapazität des Quarzes für die 
Schaltung bzw. warum wirkt sich der Unterschied von 1pF derart stark auf 
die Frequenz der Schaltung aus?

Oder ist meine Vermutung, dass es an der zu hohen Kapazität des Quarzes 
liegt schon falsch und es gibt eine andere Ursache?

von (prx) A. K. (prx)


Lesenswert?

Derart extrem, also 70/60, lässt sich die Frequenz von Quarzen in den 
üblichen Schaltungen m.W. nicht ziehen. Da muss eine andere Ursache 
vorliegen.

RTC Typ? Schaltung?

von Chris (Gast)


Lesenswert?

Hast du mal mit einem Oszi. die Schwingfrequenz des Quarzes gemessen?

von Chris K. (dexter86)


Lesenswert?

RTC ist die DS1337 und der Quarz ist direkt an die beiden Pinne der RTC 
gesteckt. (Wie im Datenblatt beschrieben ist bis auf GND nichts auf der 
Seite des quarzes angeschlossen.

von Chris K. (dexter86)


Lesenswert?

Chris schrieb:
> Hast du mal mit einem Oszi. die Schwingfrequenz des Quarzes gemessen?

Nein leider besitze ich kein Oszi.

von (prx) A. K. (prx)


Lesenswert?

Zur Einordnung: Die parsitären Kapazitäten von IC-Pins liegen im Bereich 
weniger pF und sind natürlich nicht ultrastabil (Temp/Humid). Wenn eine 
Abweichung von 1pF eine solche Frequenzabweichung bewirken könnte, dann 
wären Quarzoszillatoren blosse Schätzeisen.

von (prx) A. K. (prx)


Lesenswert?

Chris K. schrieb:
> Nein leider besitze ich kein Oszi.

Andersrum gefragt: Wie hast du diese Abweichung gemessen?

von Chris K. (dexter86)


Lesenswert?

A. K. schrieb:
> Chris K. schrieb:
>> Nein leider besitze ich kein Oszi.
>
> Andersrum gefragt: Wie hast du diese Abweichung gemessen?

Ehm... diese Frage möchte ich nicht beantworten... nein quatsch.

Ich habe die RTC per i2c angewiesen den SQW Output mit 1Hz auf low zu 
ziehen und eine LED dran gesteckt. Dann meine Armbanduhr auf 15 sekunden 
gestellt und gezählt wie oft die LED aus geht bis die Uhr piept und dann 
hochgerechnet.

Und ja: natürlich hätte ich lieber ein Oszi. gehabt :-D

von dolf (Gast)


Lesenswert?

da stimmt was mit dem quarz nicht.
hab zwar nur den ds1307 am laufen aber der geht mit den aus mainboards 
ausgebauten 32,768khz quarzen ohne probleme.
reichelt hat da deutlich mehr auswahl.
6p, 9p, 10p, 12,5p, 5p ......

von 6A66 (Gast)


Lesenswert?

Chris K. schrieb:
> gesteckt.

Ähem - gesteckt? Wie?

rgds

von Peter R. (pnu)


Lesenswert?

Wenn das CL falsch ist, wird der Quarz auf eine andere Frequenz 
"gezogen" selbst bei 14% Unterschied im CL macht das aber nur wenige 
Sekunden pro Tag aus.

ein derart krasser Unterschied kann nur dadurch geschehen, dass der 
Oszillator nicht richtig arbeitet oder dass ein Fehler in der Software 
vorliegt. 15 Sekunden Messzeit ist z.B. zu kurz. Da kann es sein, dass 
in Wirklichkeit 14 oder 16 Takte ausgegeben werden.

Wenns nur am CL läge, könnte man das durch einen zusätzlichen 
Kondensator ausgleichen.

von Chris K. (dexter86)


Lesenswert?

Peter R. schrieb:
> ein derart krasser Unterschied kann nur dadurch geschehen, dass der
> Oszillator nicht richtig arbeitet oder dass ein Fehler in der Software
> vorliegt. 15 Sekunden Messzeit ist z.B. zu kurz. Da kann es sein, dass
> in Wirklichkeit 14 oder 16 Takte ausgegeben werden.

Das verstehe ich jetzt nicht ganz... wenn ich feststelle, dass die LED 
17 mal blinkt während in Wirklichkeit nur 15 sekunden vergangen sind, 
steht doch fest, dass Sie viel zu schnell läuft? Und zwar dass Sie bei 
1Hz den pin 70 mal pro Minute auf low zieht. Wo ist mein Denkfehler?

6A66 schrieb:
> Ähem - gesteckt? Wie?

Naja ehm... auf einem öh... Steckbrett halt...

von (prx) A. K. (prx)


Lesenswert?

Ist da auch noch ein passender Widerstand mit beteiligt, der nur sowiel 
Strom fliessen lässt wie das IC abkann? Oder hängt die LED direkt am 
Ausgang des armen ICs?

von Chris K. (dexter86)


Lesenswert?

A. K. schrieb:
> Ist da auch noch ein passender Widerstand mit beteiligt, der nur sowiel
> Strom fliessen lässt wie das IC abkann? Oder hängt die LED direkt am
> Ausgang des armen ICs?

Aber selbstverfreilich sooooo grün hinter den Ohren bin ich nun auch 
wieder nicht :-D. Das IC kann 20mA am Ausgang und es fließen ~8mA. 
Außerdem habe ich (wie bei fast allen billigen Bauteilen) die doppelte 
Menge bestellt. Habe sowohl den Quarz zum Test ausgetauscht und auch die 
DS1337 die ist also intakt.

von Peter R. (pnu)


Lesenswert?

Chris K. schrieb:
> Das verstehe ich jetzt nicht ganz... wenn ich feststelle, dass die LED
> 17 mal blinkt während in Wirklichkeit nur 15 sekunden vergangen sind,
> steht doch fest, dass Sie viel zu schnell läuft? Und zwar dass Sie bei
> 1Hz den pin 70 mal pro Minute auf low zieht. Wo ist mein Denkfehler?

Alleine dadurch, dass der Augenblick des Messbeginns nicht genau am 
Sekundenbeginn erfolgen kann, gibt es schon einen Quantisierungsfehler, 
je nachdem , ob kurz vor oder kurz nach dem Sec-beginn mit der Messung 
begonnen wird, ebenso ob kurz vor oder nach dem Beginn der 16.Sekunde 
die Messung beendet wird.

Die Zahlen waren ja auch nur ein Beispiel, um zu erklären, warum eine 
Messzeit von 15 sec eigentlich zu kurz ist. Wenn schon nach 15 sec ein 
Fehler erkennbar ist, liegts nicht am falschen CL des Quarzes.

Grundaussage ist: falscher Wert von CL wirkt sich  als einige sec pro 
Tag aus, nicht als sec pro Minute.

von (prx) A. K. (prx)


Lesenswert?

Chris K. schrieb:
> Das IC kann 20mA

Wenn du die RTC meinst - da sind es 3mA.

> ist also intakt

Es geht dabei weniger um einen Defekt, sondern um mögliche Einbrüche bei 
der Stromversorgung, die einen empfindlichen Oszillator ins Stottern 
bringen können.

von Chris K. (dexter86)


Lesenswert?

Okay. Was könnte denn dazu führen, dass sich das so extrem auswirkt? 
Falscher Quarz also zu hohe Frequenz ist klar. Aber der hat (zumindest 
mal laut Aufdruck auf dem tütchen 32.786 Khz wie es die RTC auch 
benötigt.)

Jetzt wärs natürlich hilfreich das Ding mal messen zu können...

von Peter R. (pnu)


Lesenswert?

Das Messen des Quarzes selbst benötigt Messtechnik, die Dir sicher nicht 
zur Verfügung steht.

Dann nimm halt einen 74HC4060, der einen Oszillator enthält und löte die 
Quarze, den vom Motherboard und den von C... mit richtiger Beschaltung 
dran.

von Uwe S. (de0508)


Lesenswert?

Hallo,

ich habe so ein (zwei) Module an einer Bakenuhr laufen.

http://img02.taobaocdn.com/imgextra/i2/284400281/T2.UJmXg4NXXXXXXXX_!!284400281.jpg

Auch hier läuft die RTC DS1307 Uhr zu schnell verglichen mit einer 
Atomuhr.
So dass ich das Gehäuse des 32kHz Quarzes erst mal auf Masse gelegt habe 
und bisher zwei keramische NP0 Kondensatoren mit je 3,9pF Dazu gelötet 
habe.

Die Abweichung liegt noch zu hoch; bezogen auf eine Woche ~ 1Minute.

Ich werde noch bis zu 10pF NP0 die Kondensatoren vergrößern müssen.

Von der SW ist das bei mir ähnlich, das 1Hz Signal das DS1307 stößt den 
µC atmega168 an und dieser zählt die Software Uhr weiter.
Alle 24 Std. wird die Zeit erneut aus dem DS1307 gelesen.

Hier sind Bilder (als PDF) vom der LCD und dem Entwicklungsboard.

[1] http://www.qrpforum.de/index.php?page=Attachment&attachmentID=12608
[2] http://www.qrpforum.de/index.php?page=Attachment&attachmentID=12609

von Pete K. (pete77)


Lesenswert?

Mit dem DS32Khz hast Du das Problem nicht, falls es sich um ein 
wirkliches Hardware-Problem handelt :-)

Hast Du auch Stützkondensatoren für VCC am uC und DS1337?

von Schnurpsel (Gast)


Lesenswert?

Chris K. schrieb:
> Naja ehm... auf einem öh... Steckbrett halt...

Also hast du auch noch zusätzliche parasitäre Kapazitäten durch die 
Steckbrettkontakte.

von Chris K. (dexter86)


Lesenswert?

A. K. schrieb:
> Es geht dabei weniger um einen Defekt, sondern um mögliche Einbrüche bei
> der Stromversorgung, die einen empfindlichen Oszillator ins Stottern
> bringen können.

Mhm interessanter Punkt... also das könnte bedeuten (korrigiere mich), 
dass hier eine Art unschärfe Relation vorliegt? Dass also meine 
Messmethode (die LED um den Takt sichtbar zu machen) den Oszillator aus 
dem Tritt bringt weil sie zuviel Strom von der RTC zieht?

von (prx) A. K. (prx)


Lesenswert?

So war es gemeint. Ziehen kann sie allerdings nichts, da der betreffende 
Ausgang Open Drain ist, d.h. die LED müsste per Widerstand an VCC 
liegen.

von Peter R. (pnu)


Lesenswert?

Also zumindest die Verbindung Quarz zu IC darf nicht über das Steckbrett 
führen.

Da sind sofort Kapazitäten von 10pF und mehr an den Zuleitungen 
beteiligt, die das Schwingen des Oszillators beeinflussen.


Da kann es auch sein, dass von den Nachbarschienen im Steckbrett 
übersprechende Impulse vom Oszillator als zusätzliche Impulse 
aufgenommen werden, die entweder einzelne Schwingungen des Quarzes 
überdecken oder zusätzlich gezählt werden.

von Chris K. (dexter86)


Angehängte Dateien:

Lesenswert?

A. K. schrieb:
> So war es gemeint. Ziehen kann sie allerdings nichts, da der betreffende
> Ausgang Open Drain ist, d.h. die LED müsste per Widerstand an VCC
> liegen.

Das tat sie. Ich habe sie jetzt ausgebaut, habe aber weiterhin den 
gleichen Effekt.

Mir kam gerade noch eine andere Sache in den Sinn. Ich frage die Uhr 
sehr häufig über i2c ab (in meinem test etwa 4 mal pro Sekunde). Kann es 
sein, dass Sie das nicht verträgt?

Peter R. schrieb:
> Da kann es auch sein, dass von den Nachbarschienen im Steckbrett
> übersprechende Impulse vom Oszillator als zusätzliche Impulse
> aufgenommen werden, die entweder einzelne Schwingungen des Quarzes
> überdecken oder zusätzlich gezählt werden.

Auf den Nachbarschienen ist ja gar nichts los.. wie im Datenblatt 
beschrieben habe ich die Seite fein säuberlich leer gelassen. Habe auch 
mal ein Bild vom Aufbau angehängt.

von Peter R. (pnu)


Lesenswert?

Danke für das Bild des Aufbaus. Das Erklärt Vieles. (Kicher!)

Schon einmal etwas von Stützkondensatoren gehört?

Hier vagabundieren die Umschaltimpulse durch die Landschaft, dass ein 
ordentliches Arbeiten der Schaltung nur als Zufall bezeichnet werden 
kann.

Mindestens:

für ein IC jeweils nur eins der blau/rot gekennzechneten Schienenpaare 
verwenden. und nicht plus von dem rechten Paar holen und Minus vom 
linken.
Dazu auch bei jedem roten/blauen Schienenpaar einen Kondensator ca. 
100nF als Stützkondensator anschließen. Besser wäre es, mit möglichst 
kurzer Leitung direkt an jedem IC den Stützkondensator anzuschließen. 
Wahrscheinlich arbeitet das RTC sogar einwandfrei, der Kontroller dürfte 
wegen der fehlenden C's spinnen.

von Chris K. (dexter86)


Lesenswert?

Peter R. schrieb:
> Dazu auch bei jedem roten/blauen Schienenpaar einen Kondensator ca.
> 100nF als Stützkondensator anschließen.

Okay ehm... mit Anschließen meinst du den Kondensator wirklich zwischen 
die beiden Schienen packen? Ich glaube ich muss mir das Konzept von 
Kondensatoren nochmal genauer angucken... Kannst du vielleicht kurz 
erklären was das bringt? Also wieso man das machen sollte?

Peter R. schrieb:
> Wahrscheinlich arbeitet das RTC sogar einwandfrei, der Kontroller dürfte
> wegen der fehlenden C's spinnen.

Eher unwahrscheinlich (würde ich sagen), da ja bei meinen ersten Tests 
der uc keine Rolle spielte, da ich an der LED ja direkt den 1Hz Puls 
angezeigt habe und dieser wahr schon deutlich zu schnell.

Danke schonmal für die Tipps. Bisher haben solche Stützkondensatoren 
(bei den bisherigen Problemen) noch nie einen Effekt gehabt, deshalb 
habe ich das bisher immer als Esotherik abgetan. Bei der Quarz-Klamotte 
könnte ich mir schon eher vorstellen, dass hier das Problem liegen 
könnte...

von Peter R. (pnu)


Lesenswert?

ja, einen pin des C an die blaue Schiene, den anderen an die rote 
Schiene anschließen.
So ein Kontroller zieht beim Umschalten für Teile einer Mikrosekunde 
Strom von -zig mA aus der Vcc-Spannungsversorgung. Da reicht die 
Längsinduktivität von fünf oder zehn cm Draht aus, um die Spannung um 
ein V oder mehr einbrechen zu lassen.

Chris K. schrieb:
> da ich an der LED ja direkt den 1Hz Puls
> angezeigt habe

Hast Du wirklich das RTC in Betrieb? Oder hast Du ein Programm geladen, 
das nur den Takt des Kontrollers benutzt? Gerade die Abweichung im 
Prozent-Bereich führt zur Vermutung, dass da der interne RC-Takt benutzt 
wird, der bei atmegas im Auslieferungszustand aktiv ist.

von Chris K. (dexter86)


Lesenswert?

Peter R. schrieb:
> Hast Du wirklich das RTC in Betrieb? Oder hast Du ein Programm geladen,
> das nur den Takt des Kontrollers benutzt? Gerade die Abweichung im
> Prozent-Bereich führt zur Vermutung, dass da der interne RC-Takt benutzt
> wird, der bei atmegas im Auslieferungszustand aktiv ist.

Die RTC hat direkt einen Output PIN auf dem mann in verschiedenen 
frequenzen einen output "einschalten kann". Diesen habe ich auf 1Hz 
gestellt und eine LED dran gepackt Die ist in dem Aufbau nicht mehr zu 
sehen da ich sie wegen eines Tipps hier rausgenommen habe.

Aber:

Dein Tipp funktioniert tatsächlich!! Ich habe einen genauen (zumindest 
sofern es mit dem Auge und dem klopfen auf den Tisch messbar ist) 
Sekudentakt an der  RTC!! Ein Riesenfortschritt :-D Habe jetzt VCC und 
GND der RTC am selben Schienenbar und an dieses Schienenpaar ein 0,33uf 
Kondensator.

Jetzt hierzu noch die Fragen:

- Inwiefern wirkt sich die größe dieses Stützkondensators auf die 
Genauigkeit aus? Muss man diesen irgendwie berechnen? Sollte ich mir wie 
von dir empfohlen einen 100nf besorgen?

- Du hattest erwähnt es wäre besser, den Kondensator möglichst nah am IC 
zu platzieren. Besser näher an GND oder an VCC oder egal?

Danke!

von Yalu X. (yalu) (Moderator)


Lesenswert?

Chris K. schrieb:
> - Inwiefern wirkt sich die größe dieses Stützkondensators auf die
> Genauigkeit aus? Muss man diesen irgendwie berechnen? Sollte ich mir wie
> von dir empfohlen einen 100nf besorgen?

Je größer, desto besser, solange es sich um eine Keramik- und nicht um
einen Elektrolytkondensator handelt. 47nF sind meist das Minimum, 100nF
ist heute Standard, und 330nF bist du erst recht auf der sicheren Seite.

> - Du hattest erwähnt es wäre besser, den Kondensator möglichst nah am IC
> zu platzieren. Besser näher an GND oder an VCC oder egal?

Das ist egal. Es komm auf die Summe der beiden Leitungslängen zu dem
VCC- und dem GND-Pin des ICs an. Auf dem Steckbrett würde ich den
Kondensator einfach diagonal über das IC legen und dabei die jeweils
nächstgelegenen Steckkontakte an den IC-Pins nutzen. Die Drähte für die
Stromversorgung selbst kannst du auch einen Kontakt weiter außen
einstecken.

Du solltest dir angewöhnen, generell jedem IC einen solchen Kondensator
zu spendieren, denn er hat zwei Funktionen: Er hält externe Störungen
vom IC ab, sorgt aber auch dafür, dass die vom IC selber produzierten
Störungen gleich vor Ort weitgehend vernichtet werden und somit weniger
stark zu anderen Schaltungsteilen gelangen können.

von Chris K. (dexter86)


Lesenswert?

Super. Vielen Dank! Für die meisten hier wahrscheinlich klar, für mich 
die Top-Erkenntnis des Monats :-D

von Michael (Gast)


Lesenswert?

Entkoppelkondensator

Der Entkoppelkondensator hat die Aufgabe, die Versorgungsspannung nahe 
an einem IC für hochfrequente Ströme zu puffern (entkoppeln, engl. 
decoupling). Schnelle Digital- und Analogschaltungen benötigen vor allem 
beim Umschalten sehr schnell viel Strom, in der Größenordnung von 
Nanosekunden bis Mikrosekunden, je nach IC Milliampere bis Ampere. Diese 
müssen mit möglichst geringem Widerstand und Induktivität geliefert 
werden. Ein Stromversorgungsnetz auf einer Platine kann das meist nur 
unzureichend, dazu sind die Leitungen meist zu lang und damit die 
Induktivität zu hoch. Ein nah am IC platzierter Kondensator liefert 
diesen Strom für kurze Zeit, ohne dass die Spannung nennenswert 
einbricht. Die Entkopplung der Stromversorgung geschieht meist 
mehrstufig, d.h. es werden Kondensatoren verschiedener Arten und 
Kapazitäten eingesetzt, siehe Stromversorgung für FPGAs.

Praktische Anwendung

    Jeder Digitalschaltkreis benötigt einen 100nF Keramikkondensator nah 
(kleiner 20mm) an den Anschlüssen von VCC und GND. Je schneller der IC 
schalten kann, umso wichtiger ist er.
    Für jedes Anschlusspaar von VCC und GND eines ICs muss ein 
Kondensator verwendet werden. Sparen geht hier oft schief!
    Schnelle Analogschaltkreise wie Operationsverstärker, Treiber etc. 
brauchen auch individuelle Entkoppelkondensatoren.
    Pi mal Daumen gilt: Je größer der Kondensator, umso weiter kann er 
von dem Verbraucher weg sein, da er auf Grund seines Innenwiderstands 
weniger HF-tauglich ist. Es ist somit nicht sinnvoll, einen 1000µF 
Elektrolytkondensator 10mm neben einen Digital-IC setzen zu wollen. Dort 
gehört der 100nF Keramikkondensator hin. Aber für die Stromversorgung 
von Motoren, Treibern und H-Brücken sind derartige großen Kondensatoren 
wichtig und sollten nicht zu weit entfernt sein.

Chris K. schrieb:
> - Du hattest erwähnt es wäre besser, den Kondensator möglichst nah am IC
> zu platzieren. Besser näher an GND oder an VCC oder egal?

Hauptsache so nah wie möglich am IC - also bei deinem Schneckentempo was 
auf der Platine läuft bis 5cm.

Chris K. schrieb:
> - Inwiefern wirkt sich die größe dieses Stützkondensators auf die
> Genauigkeit aus? Muss man diesen irgendwie berechnen? Sollte ich mir wie
> von dir empfohlen einen 100nf besorgen?

Der Koppel-C stellt nur die Stromversorgung sicher. Siehe oben. Ohne ihn 
kann lapidar gesagt jeder IC ins Stottern kommen. Auf Englisch nennt man 
das Decoupling. Eines der essentiellsten Probleme beim Layout von FPGAs. 
Dort macht man für gewöhnlich die Entkoppelung auf der Rückseite der 
Platine. Auf der Oberseite sitzt der FPGA dann z.B. im BGA Gehäuse. So 
sieht das dann aus. 
http://forums.xilinx.com/t5/image/serverpage/image-id/1446i1196440B1ED04494/image-size/original?v=mpbl-1&px=-1
Alternativ geht man bei den neuen Stratix FPGAs auch schon dazu über 
eine ganze Platine zwischen FPGA und PCB zu löten. Nur um den FPGA 
entkoppeln zu können.

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
Noch kein Account? Hier anmelden.