Forum: Mikrocontroller und Digitale Elektronik Genaute Uhr geht immer vor! Quarz ungenau?


von Martinw (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute.

Also ich hab hier ja schon mal die Uhr die ich gebaut habe vorgestellt,
das Problem ist das sie leider so ca pro Woche 5 minuten vor geht. Es
handelt sich dabei um einen Quarz mit der Frequenz 2,097152 MHz.
Benützter Controller ist ein PIC18F258.
Oszillator einstellung ist HS PLL. Die Frequenz ist mit einem innerem
Timer verbunden der bei überlauf genau jede sekunde einen Interrupt
auslöst, welcher dann die Uhrstand weiter zählt...

Ich verwende den Quarz ohne Kondensatoren (15pF oder so sind eigentlich
immer bei den schaltplänen zu sehen...) jetzt wollte ich fragen ob
diese Abweichung vielleicht daher kommt, oder hat jemand eine andere
Erklärung?

MfG Martin

von Dingens (Gast)


Lesenswert?

bin hier sicherlich nicht der kompetenteste, aber ich hab grad
langeweile und antworte einfach mal:

ein quarz ist als ein normaler schwingkreis mit sehr hoher güte
betrachtbar. er ist wie jeder andere schwingkreis nicht von seinem
treiber entkoppelt und kann durch
serien-/parallel-kapazitäten/-induktivitäten verstimmt werden. daher
werden quarzoszillatoren wo es auf genauigkeit ankommt üblicherweise am
frequenzzähler mit einem trimmkondensator z.B. in serie abgestimmt auf
die soll-frequenz.

darüber hinaus ist ein quarz auch an sich noch nicht sonderlich
temperaturstabil. wie jeder mechanische schwinger verändert auch er mit
der temperatur seine resonanzfrequenz. wenn man auch das kompensieren
will kann man sich entweder eine tolle kompensationsschaltung
berechnen, was aber vertan'ne zeit ist da es bereits fertige
temperaturkompensierte quarzmodule zu kaufen gibt, oder man bedient
sich eines quarzofens um den quarz ständig temperaturstabil zu halten,
was z.B. in aufwändigen funkanlagen gemacht wird.

die pros und contras von quarzoszillatormodulen sind hier auch schon
irgendwo mal geschrieben worden im forum. glaub die wesentlichen
contras sind der hohe stromverbrauch und dass sie im sinne der emv
ziemliche dreckschleudern sind. was die genauigkeit angeht gibt es
etliche klassen, glaub die genauesten im reichelt laufen mit +/-25ppm.
das ist für den anfang erstmal nicht schlecht.

ach ja, guten rutsch und so

von Peter D. (peda)


Lesenswert?

Ist zwar für den AVR aber das Prinzip sollte auch auf dem PIC machbar
sein:

http://www.mikrocontroller.net/forum/read-4-57760.html


5 min / Woche sind keinesfalls mit der Quarztoleranz erklärbar, da muß
es schon ein Fehler in der Software sein.

Häufig wird der Fehler gemacht, daß die Interrupteintrittszeit nicht
berücksichtigt wird, bzw. diese als konstant angenommen wird.

In dem Beispiel mit dem Compareinterrupt spielt das keine Rolle.

Aber es geht auch per Software. Man muß dann nur die bis zum
Interrupteintritt vergangene Zeit addieren (Timer läuft ja weiter) und
schon ist man auch ohne Compareinterrupt auf den Takt genau.


Peter

von Martinw (Gast)


Lesenswert?

Hi

Hmm ne ich glaub nicht, dass es an der Software liegt! Ich mein der
Counter läuft ja im Background immer weiter, da ist es eigentlich
herzlich egal was das Programm tut und die paar µs die es dauert bis
das Programm zum hochzählen fertig ist zählen ja eigentlich nicht
mit....
Kann es vielleicht am PLL liegen? Dass das mal mal 5 statt mal 4
rechnet...?


MfG Martin

von Peter D. (peda)


Lesenswert?

Warum benötigst Du eine PLL ?

Kann man nicht direkt die Quarzfrequenz als Timertakt nehmen ?


Ich glaube auch, ne PLL kann ab und zu mal ausrasten.


Peter

von Wolfram Hildebrandt (Gast)


Lesenswert?

die pll multipliziert den takt beim pic18 mit 4.
durch internes teilen durch 4 und eingeschalteter pll wird bis 10 mhz
extern beim pic18 auch mit 10mhz intern gerechnet.

von Dingens (Gast)


Lesenswert?

trotz des ignoriert werdens würd ich abermals empfehlen den quarz
abzustimmen. die aufgedruckte nennfrequenz ist nicht die eigenfrequenz
ohne belastung sondern die frequenz bei einer genormten belastung. wenn
du den irgendwie wald-und-wiesen-mässig betreibst kannste da teilen und
programmieren so toll du willst, die frequenz stimmt trotzdem nicht.

von Merle (Gast)


Lesenswert?

Wi bekommst du die ganzen Bilder
auf das display ohne externen speicher???

Gruß
Beni

von tomafa (Gast)


Lesenswert?

@ Merle + Dingens

Feiert Ihr kein Neujahr oder was los

Ich wünschen allen hier im Forum ein schönes neues jahr


Mfg

tomafa

von Peter D. (peda)


Lesenswert?

@Dingens,

mach die Quarze nicht schlechter als sie sind.

Die Güte ist so hoch, daß Du ihn keinesfalls auf 5min / Woche
weggezogen kriegst, auch nicht bei totaler Fehlanpassung.

Erst wenn der Fehler unter 30s / Woche liegt, dann könnte man mal über
einen Abgleich reden.

Allerdings sind Trimmer schwer zu handhaben, ein Softwareabgleich wie
in meinem Beispiel beschrieben ist da wesentlich genauer.


Ich kenn jetzt diesen PIC nicht, aber bei manchen MCs ist es möglich,
den CPU-Takt und den Timertakt getrennt auszuwählen.
D.h. die PLL nur für die CPU zu nehmen, den Timer aber direkt vom
hochgenauen Quarz zählen zu lassen.


Peter

von Merle (Gast)


Lesenswert?

@tomafa

No nachträglich ein schönes Neues.

Mfg. Merle

von Martinw (Gast)


Angehängte Dateien:

Lesenswert?

Von mir auch ein FROHES NEUES JAHR!!!

Also zum Abstimmen.... leider besitz ich nicht die messmöglichkeiten
den takt vom Quarz so genau zu bestimmen... aber kondensatoren könnte
ich schon einbauen, dadurch müsste die Uhr eigentlich langsamer
werden...

Die Bilder sind alle im Speicher vom PIC, ist auch praktisch Rand voll
:-) Die Uhr kann ja auch die Zeit analog anzeigen (siehe angehängtes
Bild). Die zwei anderen Chips dienen nur zur Herstellung von Minus
20Volt für den LCD Kontrast.
Falls Interesse besteht kann ich den Code hochladen, auch wenn ich ihn
nur ungerne hergebe, da ich die Zeichen ALLE händisch übertragen
habe.... könnts euch vorstellen was das für ne heiden Arbeit war...
Bilder kann ich euch bei Bedarf natürlich auch geben und eagle Pläne
auch :-) falls die jemand nachbauen will...

Das PLL verwende ich damit der Bildaufbau nich so schleppend geht (sind
doch ganz schöne Datenmengen, aber beim Sekundenwechsel wird eh nur die
reine Schrift also ein paar Byte übertragen), aber ich könnte
eigentlich auch einen 4 mal so "schnellen" Quarz einbauen...

MfG Martin

von Merle (Gast)


Lesenswert?

@ Martinw

Kanns mir mal die eagle pläne per e-mail schiken??

Ich will mal probieren die Uhr nachzubauen.


Mfg. Merle

von Martinw (Gast)


Angehängte Dateien:

Lesenswert?

Hi

Ich hänge die Datei mal an...
Ich empfehle dir aber ein Display mit LED beleuchtung zu nehmen, da
gibts weniger Probleme mit den Funkstörungen vom Inverter und die
Platiene könnte auch deutlich kleiner ausfallen, man könnte auch noch
die Helligkeit mit PWM steuern, ein Bedien/Stell Interface ist in der
Software intgriert -> deswegen auch die 5 Taster...
Ansonsten ist die Schaltung eh net wirklich allzu komliziert, nur
größere Pufferkondensatoren würde ich dir noch empfehlen, der Inverter
wieder mal ;-)
Und die Negativspannung dafür gibts ja auch spezielle Chips bzw Diplays
die die Spannungsversorgung onboard haben. Aber ich glaub sowieso nicht
dass du grad so zufällig den TCM680 von Microchip zuhause rumliegen
hast, also musst du da sowieso improviesieren, aber soweit ich mich
erinnern kann bist du ja net so schlecht auf dem Gebiet g
Ich schreib schon wieder zu viel also...

MfG Martin Wiessflecker

von Simon Waldner (Gast)


Lesenswert?

Darf ich mal fragen, wieviel Pixel das Display hat?

Merci

von Erik (Gast)


Lesenswert?

Salü!
Ich habe selbst mal eine Uhr gebaut allerdings mit diskreter Logik und
einem 3,2768Mhz Qiarz und auch meine Uhr hat etwa die gleiche
Abweichung wie Deine!
Das Problem sind die Kondenser die am Quarz anfeschlossen sind, d.h.
die Kapazität ändert sich bei Temperaturschwankungen und somit ändert
sich die Frequenz ein kleines bisschen!!!
Da dein Quarz x Milliarden mal in einem Monat Schwingt mit einer
kleinen Abweichung schwingt, wird die Uhr ungenau!
Mein Tip: Benutze einen kompletten Oszilator der direkt High Low Pegel
ausgibt, die sind Temperautstabiler!!!

von Erik (Gast)


Lesenswert?

Entschuldige meine Rechtschreibung, bin gerade aufgestanden.
Noch ein Tip: Je höher die Frequenz deines Quarzes, desto kleiner wird
die Abweichung nach dem Teilen sein!
Kannst ja mit diskreter Logik die Frequenz runter Teilen bevors in den
AVR geht!
Meine Uhr läuft jetzt ziemlich genau! Umbedingt ein-Chip-Oszis
verwenden!!!

von Simon Waldner (Gast)


Lesenswert?

Hm, ich will auch eine Uhr basteln, aber eine mit Funk.
Aber es interessiert mich, vieviel Pixel dieses Display auf den Bildern
hat, damit ich weiss, mit was für Dimensionen ich rechnen muss.

MFG
Simon


P.S: Wenn ihr es noch nicht bemerkt habt: Der Thread ist noch vom
Januar!

von martinwisi (Gast)


Angehängte Dateien:

Lesenswert?

Hehe Hallo Leute!

Mele mich wieder mal zurück ;-)

Also ich hab die Uhr inzwischen ein zweites mal aufgebaut, diesmal mit
LED Hintergrundbeleuchtung, siehe angehängtes Bild!

Das Display hat 240*128 Pixel. Man könnte aber auch ein 240*64
verwenden, die sind deutlich billiger, man müsste dann aber entweder
das Datum und Uhrzeit scrollen oder wechseln...

Also wegen der Abweichung habe ich mir überlegt, könnte ich ins
UserInterface (da wo man auch so das Datum einstellt) etwas einbauen wo
man einstellen kann wieviele Sekunden oder Zehntelsekunden die Uhr um
sagen wir genau 24:00 vor oder zurück gestellt werden soll jeden Tag.
Also sozusagen wenn sie pro Tag 3 sekunden vor geht dann stellt man da
-3 ein...

Greez Martin

von Simon Waldner (Gast)


Lesenswert?

Hallo Martin

Wieso nimmst du nicht ein Funkmodul? Ist sicher genauer...
Und woher hast du dieses Display? (Ich hoffe doch nicht vom grossen
C)?

MFG
Simon

von martinwisi (Gast)


Lesenswert?

Naja ich weiß nicht. Mit Funk hab ich mich noch nich so beschäftigt,
jedem das seine ;-)

Nene keine Sorge ist von E-Bay... aber aufpassen, die Preise sind dort
auch nicht mehr das wahre...

MfG Martin

von Simon Waldner (Gast)


Lesenswert?

Ich habe an ein 128*64 gedacht, wird aber knapp...

Aber wenn man das als Weckerdisplay auf dem Nachttisch stehen hat,
naja...

Ich überlege mir eine Funkuhr mit einem Display fur den Nachttisch, mit
Alarmfunktion und einer Lichtsteuerung für das Displaylicht und ein
Stimmungslicht im Zimmer... Und vieleicht noch ein kleiner Beamer, der
mir die Zeit an die Decke beamt. Muss mal sehen, was sich machen
lässt...

von Profi (Gast)


Lesenswert?

Saubere Sache, Gratulation!
Funk (DCF77) ist nicht so schwer, habe ich vor 15 Jahren schonmal
gebaut. Es gibt fertige Module (damals von Conrad schaem), die TTL
ausgeben, Signal 50 mal pro Sekunde gesampelt, gemittelt, dekodiert,
und nach max. 60 Sek. ist die Zeit da (die Bits kommen in einen
Ringpuffer, der beim fehlenden Sekundenimpuls richtig "hingeschoben"
wird, die eigentliche Zeitinfo ist ja schon (glaub ich) in der 38.
Sekunde da).

Ich versteh auch nicht, warum manche kommerzielle Dinger da minutenlang
rumueberlegen, bevor sie was ausgeben.

Ich wurde das Dekodierem auch ein wenig intelligenter machen: manchmal
kommt es durch Empfangsstoerungen (Oberwellen vom Monitor) vor, dass
die Uhr Schmarrn anzeigt. Ein wenig Plausibilitaets-Check und Vergleich
mit der mitlaufenden Software-Uhr wuerde schnell ergeben, dass es nicht
ploetzlich 10 Minuten oder Tage spaeter sein kann.

Zum Abgleich: ich wuerde nicht um 24 Uhr um 3 Sek. verstellen, sondern
den Timer, der den Sek-Interrupt erzeugt, um ein Paar Ticks verstellen,
so wie peter dannegger 01.01.2004 11:44 es gemeint hat.

Erik: ???? 50 ppm sind 50 ppm, auch wenn Du noch so viel daran
rumteilst, sind das 131,49 Sekunden pro Monat (im Mehr-Jahres-Mittel).

Profi

von Markus (Gast)


Lesenswert?

@Simon:
Hast Du Dir schonmal Gedanken zu dem Beamer gemacht?
Ich würde sowas auch gerne bauen, aber mit Optik habe ich überhaupt
keine Erfahrung.

Im Prinzip nimmt man wohl ein durchsichtiges LCD (also ohne den
üblichen Hintergrund, blöd nur wenn da die Elektronik sitzt) und
invertiert vielleicht noch (Polarisation ändern) oder man nimmt
entsprechende LEDs (z.B. 7-Segment-Anzeigen). Dazu noch eine Linse und
gut. Aber woher kriegt man passende Linsen und wie stellt man die
Schärfe (des projezierten Bildes) ein?

Markus

von Simon Waldner (Gast)


Lesenswert?

@Markus:
Tja, mit dem Problem befasse ich mich eben auch gerade.
Mit einem LCD geht es glaub ich nicht, ich habe vorhin einen
Billigtaschenrechner zerlegt und die rückwärtige Reflexionsfolie
abgezogen, so das man hindurchsehen konnte. Leider sind dann aber auch
die Zahlen verschwunden... Ich hatte auch mal so ein Billigzeitbeamer
von Pearl, die haben das mit so einer LCD Technik gemacht, aber frag
mich nicht, wie; ich hab das ding schon längstens entsorgt....

Die andere (bessere?) Möglichkeit ist: Eine 7 Segment Anzeige so
anzuschliessen, dass die Zahlen in jedem Fall Spiegelverkehrt angezeigt
werden, dann darüber ein Rohr stülpen (Ich habe das beim Versuchsaufbau
mit einer Toilettenpapierrolle gemacht) und darüber eine Lupe halten.
Leider ist das Licht sehr schwach, sodass man bei Tageslicht nichts
sieht.

Ich habe das eben nochmal versucht (jetzt ist es dunkel...) und es ging
sogar auch ohne Röhre, ich musste nur die Lupe etwa 7 cm über das LCD
halten, und es wurde (relativ) scharf auf die Decke Projeziert. Ist
vielleicht auch gut so, dass es nicht zu stark leuchtet, dann stört das
nachts auch nicht.

Vom Restlichen Aufbau denke ich, nehme ich einen ATMEGA32 Controller,
daran schliesse ich dann das Display, den Empfänger, den Beamer und
(muss ich mir noch genauer überlegen) einen zweiten MC mit der
Alarmfunktion und der Beleuchtungssteuerung an.

Wegen der Beleuchtung: Ich möchte mir noch solche RGBB LED's kaufen,
und anhand eines D/A Wandlers jeweils die Leuchtfarbe über das Menü im
Display umstellen. Dazu muss ich mich aber noch genauer informieren.

Mein Konzept steht noch nicht ganz.
Aber ich lass mir Zeit. Vor Allem auch wegen der Bestellung (Ich muss
es fast bei Reichelt bestellen), da ich ja in der Schweiz wohne, muss
ich einen Mindestbestellwert von 100€ haben. Da muss alles geplant
werden. Sonst muss ich mir die fehlenden Teile in der Schweiz kaufen,
und das wird teuer. (Zum Beispiel kostet eine 3-Farben LED in der
Schweiz umgerechnet 7.50€, bei Reichelt nur ca. 1-2€; schon krass. Ich
will gar nicht daran denken, was das Blaue LCD in der Schweiz
kostet...)



Gute Nacht
Simon

von Markus (Gast)


Lesenswert?

@Simon:
Hast Du den Polarisationsfilter mit abgezogen? Dann ist natürlich
nichts mehr zu sehen. Das kann z.B. so ein durchsichtige
Kunststoffblättchen sein.

Zu den LEDs: Daß man tagsüber kaum was sieht ist normal, das ist auch
bei den käuflichen Geräten so. Gibts eigentlich ultrahelle
7-Segment-Anzeigen? Die Helligkeit kann man problemlos einstellbar
machen.

Markus

von Simon Waldner (Gast)


Lesenswert?

Markus:
Also ich habe nur die Rückwärtige Folie abgezogen (Wenn man die Folie
vor den Polarisationsfilter hält, sieht sie schwarz statt grau aus).
Der Filter habe ich natürlich schon davorgehalten, aber es scheint so,
dass die Rückwärtige Spiegelfolie das Licht auch nochmals speziell
Polarisieren muss, um es sichtbar zu machen.

Ich habe in einem Katalog solche HIEFF-7 Seg. Anzeigen gesehen (High
Effizienz) Aber die verbrauchen eher weniger Strom als dass sie mehr
leuchten. Im Dunkeln sieht man die Anzeige sehr gut, und wenn die
Anzeige nachts zu hell leuchtet, so ist das störend. Die Normale
Lichtstärke würde für mich eigentlich ausreichen.

Aber was ich noch festgestellt habe: Die Linse (eine normale
Lupenlinse) muss im Durchmesser mindestens gleich gross sein wie alle 7
Seg. Anzeigen nebeneinander, sonst werden die Ränder unscharf. Daher
reichen schon 7.6 - 10mm grosse Anzeigen. Man sollte aber auch die
Anzeigen in ein innen schwarze Röhre anbringen, sonst gibt es störendes
Streulicht.

Aber ab Morgen habe ich leider keine Zeit mehr, da mein Praktikum
beginnt, und ich muss -bis ich in Zürich eine Wohnung habe- jeden Tag 4
Stunden Zug fahren. Da bleibt Abends keine Zeit mehr.


MFG
Simon

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.