Symbol Counter mit RTC beim ATmega128RFA1

OP #1766379
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
1
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
Angehängte Dateien:
OP #1766403
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.
Moderator Persönliche Seite #1859828
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.)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren