Forum: Mikrocontroller und Digitale Elektronik Verständnisproblem Uhrenquarz an mega8


von Frank E. (erdi-soft)


Lesenswert?

Hi Leute,

ich hab grad ein kleines Verständnisproblem mit nem 32,768 kHz 
Uhrenquarz an nem ATmega8.
Beim ATmega8 sind die Pins für den normalen Quarz und für den TOSC 
(Timer-Quarz) die selben. Ich benutze den internen Taktgeber und hab den 
Uhrenquarz für eine genauere Zeitbasis dran.
Dummerweise schwingt der nicht mit 32kHz sondern auf ner anderen 
Frequenz.
Laut Datenblatt benötigt der ja keine weitere Beschaltung in Form von 
Kondensatoren.
An anderer Stelle steht jedoch, dass man das CKOPT-Fuse programmieren 
muss, um die internen 32pF Kondensatoren zu aktivieren.
Das kann ich mit meinem App-Note AVR910 Programmer aber leider nicht.

Muss ich nun doch noch Kondensatoren an den Quarz hängen, damit dieser 
auf seiner Grundfrequenz schwingt? Oder gibt es ne andere Lösung?


Danke im Voraus für eure Antworten.


Gruß,
ERDI - Soft.

von Winfried (Gast)


Lesenswert?

Kondensatoren wirst du schon brauchen, entweder die internen oder wenn 
du die nicht programmiert bekommst, externe.

von A.K. (Gast)


Lesenswert?

Der Programmer kann also die Fuses auf low freq osc stellen, aber nicht 
CKOPT aktivieren? Kurioses Teil.

von Hannes L. (hannes)


Lesenswert?

Was willst Du überhaupt erreichen?

- Soll der AVR mit dem Uhrenquarz getaktet werden?

- Soll der AVR mit dem internen RC-Oszillator getaktet werden und
  Timer2 mit dem Uhrenquarz eine RTC bilden?

Das sind nämlich zweierlei Paar Schuhe...

...

von UBoot-Stocki (Gast)


Lesenswert?

Moin,

ich klinke mich mal ein.

Mich interessiert der zweite Fall: Timer2 mit dem Uhrenquarz eine RTC 
bilden.

Gibts da schon was im Forum?

Gruß

Andreas

von Hannes L. (hannes)


Lesenswert?

Das wurde schon gelegentlich angesprochen, aber frag' mich nicht wo. Die 
derzeitige Suchfunktion ist da nicht besonders hilfreich.

Infos solltest Du im Datasheet Kapitel Timer2, Stichwort 'asynchron' 
finden, aber auch bei den Sleep-Modes.

Im Prinzip schickt man den AVR in den stromsparenden Tiefschhlaf und 
lässt nur Timer2 mit dem externen Uhrenquarz klappern (also die 
asynchrone Betriebsart). Dessen Interrupt weckt den AVR auf, der taktet 
dann mit dem internen RC-Oszillator, arbeitet die Mainloop ab, bis nix 
mehr zu tun ist und geht wieder schlafen.

Über Details und Fallstricke kann ich nichts sagen, ich habe es noch 
nicht gemacht, war noch nicht nötig.

...

von Thorsten S. (cuban8)


Lesenswert?

Hallo Frank,
genau sowas habe ich schon mal für einen Datenlogger gemacht.
Meine Fuses für den Mega8L waren:
Low: 0xe3
High: 0xc1

Gruss,
Thorsten

von Marco S (Gast)


Lesenswert?

Unter http://www.atmel.com/dyn/resources/prod_documents/doc1259.pdf 
findet man dazu eine entsprechende AN.

von Frank E. (erdi-soft)


Lesenswert?

Erstmal danke für eure Antworten.
Vielleicht ist es in meinem ersten Post nicht genau rübergekommen. Der 
mega8 selbst wird vom internen Taktgenerator betrieben. Der Uhrenquarz 
ist für den asynchronen Timer, um eine "genauere" Zeitbasis für die Uhr 
zu schaffen.
Eigentlich funktioniert auch alles soweit, nur dass eben der Quarz auf 
irgend einer harmonischen schwingt.

Ich werd jetzt mal 2 Kondensatoren einlöten (für die ich, zum Glück, 
Pads vorgesehen habe).

<edit>Mit den Kondensatoren funktioniert alles bestens. Danke an alle.

@Thorsten: Die Fuses kann ich mit AVRProg in dieser weise nicht 
programmieren. Hab lieber 2 Kondensatoren eingelötet als mich kurz mit 
AVRDude oder ähnlichem zu befassen. :) (Faulheit siegt) </edit>

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

CKOPT "programmed" aktiviert nicht bei allen Revisionen des ATmega8 die 
internen Kondensatoren. Vgl. Abschnitt Errata im Datenblatt. Habe grade 
kein aktuelles Datenblatt zur Hand, Fehler sollte aber erst ab Rev. G 
korrigiert sein. Gewählte Lösung mit externen Kondensatoren und CKOPT 
unprogrammed ist auf der sicheren Seite wenn man nicht genau weiss, 
welche ATmega8 Revision man nutzt.

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.