www.mikrocontroller.net

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


Autor: Frank Erdrich (erdi-soft)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Winfried (Gast)
Datum:

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

Autor: A.K. (Gast)
Datum:

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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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...

...

Autor: UBoot-Stocki (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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.

...

Autor: Thorsten Schmidt (cuban8)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marco S (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unter http://www.atmel.com/dyn/resources/prod_documents/... 
findet man dazu eine entsprechende AN.

Autor: Frank Erdrich (erdi-soft)
Datum:

Bewertung
0 lesenswert
nicht 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>

Autor: Martin Thomas (mthomas) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.