Forum: Mikrocontroller und Digitale Elektronik Mega8 Uhrenquarz Anschwingsicherheit


von Marten (Gast)


Lesenswert?

Hallo,

vielleicht kann mir hier jemand helfen. Ich versuche mittels Uhrenquarz
den Timer eines ATMega8 asynchron zu takten.
Von der Softwareseite her ist alles ok. Aber die Hardware macht etwas
Probleme. Der Quarz schwingt nur sporadisch an. Meistens aber gar
nicht.

CKOPT ist an (also interne Kondensatoren sind aus)
als externe Kondensatoren benutze ich 2 Trimmerkondensatoren 2-35 pF

Auszüge aus dem Datenblatt des Quarzes:
Frequenz: 0,032768 MHz
Cl: 12 pF
Rsmax: 25 k-Ohm
TK: +/- 50ppm
Frequenztoleranz: +/- 30ppm

Danke für eure Tipps!

von Patrick (Gast)


Lesenswert?

Hallo Marten,

nur mal so aus Neugier: Was passiert wenn du die Trimmerkondensatoren
abhängst und die internen Kondensatoren benutzt?
(immerhin sind die internen 36pF ja für Uhrenquarze gedacht)

von Marten (Gast)


Lesenswert?

Die Variante hatte ich zuerst. Leider keinen Erfolg damit.
Dann hab ich im Datenblatt des Mega8 unter Erratas gelesen das bei
bestimmten Versionen des Mega8 das CKOPT nicht funktioniert. (also die
Kondensatoren nicht zuschaltet)
Da ich mir auch nicht sicher bin welche Version ich von den Mega8 hab,
hab ichs dann mit den externen Kondensatoren versucht.

von Patrick (Gast)


Lesenswert?

Die Version mit den 2 Trimmerkondensatoren finde ich aber äusserst
heikel. Wie willst du die zwei abgleichen?

Wenn beide Lastkondensatoren gleich gross sein, gillt die Formel:
CL1=CL2=2(CL-Cs)

Dadurch, dass die Lastkapazität deines Quarzes (CL) mit 12pF schon
recht klein ist, spielt die Streukapazität Cs schon eine nicht zu
vernachlässigende Rolle.

von Marten (Gast)


Lesenswert?

Ich hab gedacht mit den Trimmerkondensatoren kann man den Punkt
einstellen, ab den es anfängt zu schwingen ... also einfach
durchprobieren.

Hab hier noch als Auswahl: 12pF oder 18pF obwohl die ja schon fast zu
gross sind oder?

von Jadeclaw D. (jadeclaw)


Lesenswert?

Also, ich habe 2003er Silizium, da funktioniert CKOpt nicht richtig,
es werden die internen Cs nicht zugeschaltet,
dadurch schwingt der Quarz sonstwo, aber nicht auf 32.768kHz.
Zusätzlich zu den Fuses, die nach Datenblatt gesetzt werden müssen,
habe ich einfach 2 x 33pF gegn Masse gelegt und gut war es.
Abweichung ohne Abgleich sowas um eine halbe Sekunde pro Tag.

Gruss
Jadeclaw.

von Marten (Gast)


Lesenswert?

Danke für eure Hilfe habs jetzt hinbekommen! Jetzt scheint der Quarz
ordentlich zu schwingen!

Marten

von Profi (Gast)


Lesenswert?

Dürfen wir bitte den Schlüssel zum Erfolg erfahren?

Ich hätte noch vorgeschlagen, einen R (100k - 10M) parallel zum Quarz
zu schalten.
Evtl. einen 10-100 Ohm zwischen µC-out zum Quarz in Reihe.

von Marten (Gast)


Lesenswert?

Ja klar!
Ich hab 2x12 pF genommen. Ausserdem noch die "Leitungslänge" zu Masse
verkürzt. (Vielleicht lags auch daran)

Marten

von Läubi (Gast)


Lesenswert?

@prof: mal interesse halber was bewirk ein parralelgeschaltet Widerstand
das der Quarz besser anschwingt?

von Jadeclaw D. (jadeclaw)


Lesenswert?

Garnichts.
Der Parallelwiderstand hat einen ganz anderen Grund:
Bei vielen Oszillator-ICs fehlt der interne Bias-Widerstand zwischen
Ein- und Ausgang. Dort muss dann ein Widerstand auf die
Oszillatoranschlüsse gelegt werden. Bei Atmel-Controllern ist das
überflüssig, dort ist der passende Widerstand schon im IC drin.
Ein Widerstand in Serie zum Quarz hat andere Gründe:
Damit werden 1. parasitäre Obertonschwingungen unterdrückt und
2. wird die Quarzbelastung reduziert, speziell bei Uhrenquarzen
notwendig. Atmel-Controller brauchen auch diesen nicht, da die  interne
Oszillatorschaltung über die Fuses umdimensioniert wird.
Der CD4060 beispielsweise braucht für einen 32kHz-Uhrenquarz beide
Widerstände.

Gruss
Jadeclaw.

von Oliver _. (verleihnix)


Lesenswert?

Also ich verwende das von Reichelt mit 12pF Bürde ohne weitere
Cs am Quarz und direkt am Mega8, ca 5mm vom Quarz zum uC.
Er schwingt immer an, wichtig dabei:
Die Register setzen und 1000ms warten,(Nop, wait etc)
dann weiter im Programm.
Sonst wird das nix richtiges...

mfg
Oliver

von Jadeclaw D. (jadeclaw)


Lesenswert?

Zum Thema Warten:
Es gibt Bits, die kann man abfragen, dann sieht das so aus:
1
  ldi Temp, 0x08
2
  out ASSR, Temp      ; Timer2 - 32kHz-Quarz einschalten
3
  ldi Temp, 0x06      ; Timer2-Mode auf Vorteiler 256
4
  out TCCR2, Temp
5
  ldi Temp, 128      ; Timer2 auf überlauf 1Hz=128.
6
  out TCNT2, Temp
7
UBWarte:
8
  in Temp, ASSR      ; Warte auf Reset der Bits               ; TCN2UB, OCR2UB,
9
TCR2UB
10
  andi Temp, 0x07
11
  tst Temp
12
  brne UBWarte
13
14
  ldi Temp, 0x41      ; Timer2 + 2-Int. freigeben
15
  out TIMSK, Temp
Der bleibt in der Schleife hängen, bis der Oszillator oben ist.

Gruss
Jadeclaw.

von Jadeclaw D. (jadeclaw)


Lesenswert?

Gott, ist die Forumsoft verblödet.
Der Inhalt der Zeilen 9 und 10 gehört in den Kommentar von Zeile 8.

Gruss
Jadeclaw.

von Marten (Gast)


Lesenswert?

Also ich muss sagen der Quarz läuft jetzt richtig stabil. Nehm ihn jetzt
allerdings als Taktfrequenz des Mega8.
Muss man dabei eigentlich noch was beachten?

Bloss mal so nebenbei: Wie bekommt man eigentlich die Revision des
Mega8 raus?

Marten

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.