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!
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)
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.
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.
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?
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.
Danke für eure Hilfe habs jetzt hinbekommen! Jetzt scheint der Quarz ordentlich zu schwingen! Marten
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.
Ja klar! Ich hab 2x12 pF genommen. Ausserdem noch die "Leitungslänge" zu Masse verkürzt. (Vielleicht lags auch daran) Marten
@prof: mal interesse halber was bewirk ein parralelgeschaltet Widerstand das der Quarz besser anschwingt?
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.
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
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.
Gott, ist die Forumsoft verblödet. Der Inhalt der Zeilen 9 und 10 gehört in den Kommentar von Zeile 8. Gruss Jadeclaw.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.