www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Symbol Counter mit RTC beim ATmega128RFA1


Autor: Daniel Pfefferkorn (pfefferk)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Moin!

Ich habe mal wieder ein Problem mit dem ATmega128RFA1.

Ich wollte den Symbol Counter einsetzen, um den uC mal länger als ein 
paar Sekunden schlafen zu lassen.

Im Datenblatt steht unter 10.4 Symbol Counter (32bit, SCCNT):

"The symbol counter is a 32 bit counter which can be sourced by a 62.5 
kHz clock,
derived from the 16 MHz system clock or from the RTC (32.768 kHz)."

Wenn ich den Zähler mit dem internen Takt betreibe, funktioniert alles 
wie erwartet. Setze ich hingegen das Bit
SCCKSEL (Bit 4, Reg SCCR0)

läuft der Zähler nicht.

An den Pins TOSC1/2 is ein 32 kHz-Uhrenquarz angeschlossen. Der gleiche 
Fehler tritt bei zwei verschiedenen Modulen auf:

http://www.dresden-elektronik.de/shop/prod111.html

und

http://www.dresden-elektronik.de/shop/prod128.html

Ich gehe mal nicht davon aus, dass es sich um einen einheitlichen 
Bestückungsfehler handelt.

Hat da jemand eine Idee? Bin für jeden Hinweis dankbar!

Daniel

Autor: Wayne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dafür benötigst du den sogenannten asynchronen Modus, musst du im 
Datenblatt gucken, das kann auch nicht jeder Zähler.

Autor: Daniel Pfefferkorn (pfefferk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, nicht ganz.

Der Symbol Counter ist extra für das Wecken aus dem Schlaf mit großen 
Intervallen vorgesehen und kennt keinen asynchronen Modus. Es lässt sich 
lediglich die "Clock Source" umschalten.

Ich habe von diesem Quarz aus auch schon den Timer2 betrieben und dort 
den asynchronen Modus usw. eingstellt. Damit lief der auch im POWER_DOWN 
weiter.

Beim SCCNT gibt es derartige Einstellungen allerdings nicht.

Gutes Bild der System Clock Sources:

Datenblatt 11.1 Overview (System Clock and Clock Options) auf Seite 147.

Autor: Daniel Pfefferkorn (pfefferk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat vielleicht doch noch jemand eine Idee?

Danke!

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Daniel,

Der 32kHz Osczillator wird im ASSR Register eingeschaltet:

         ASSR  = 1<<AS2;                     // enable 32kHz Osc.
         SCCR0 = 1<<SCEN | 1<<SCCKSEL;       // select 32.768kHz clock

Autor: Daniel Pfefferkorn (seraphim) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antwort!

Wenn ich mich wieder dem ATmega widmen kann, muss ich das gleich mal 
nachprüfen!

Ich melde mich dann...

Daniel

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sven schrieb:

>          SCCR0 = 1<<SCEN | 1<<SCCKSEL;       // select 32.768kHz clock

Das selektiert ihn aber permanent.  Wenn man eine automatische
Umschaltung zwischen dem 16-MHz-Quarz (der exakte 62,5 kHz für den
symbol counter liefert) und dem 32-kHz-Quarz (bei dem die Frequenz
nur approximiert wird und zwischenzeitlich um bis zu 16 µs jittern
kann) möchte, dann lässt man SCCKSEL einfach ausgeschaltet.  Sowie
der 16-MHz-Oszillator abgeschaltet ist (weil der Transceiver-Block
im sleep ist), benutzt der symbol counter dann automatisch den
32-kHz-Oszillator.

Denk auch dran, dass so ein 32-kHz-Quarz einige 100 ms zum
Anschwingen benötigt.

(Daniel, deine ursprüngliche Frage hatte ich damals nicht mitbekommen,
da war ich gerade im Urlaub.  Sonst hätte ich dir schneller 
geantwortet.)

Autor: Daniel Pfefferkorn (seraphim) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das macht überhaupt nichts, Jörg.

Ich danke Dir vielmals!

Wie gesagt, melde mich, wenn ich das Problem nochmal angehen kann.

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.