Forum: Mikrocontroller und Digitale Elektronik ATXmega RTC mit inter. 32 kHz Osc


von Peter S. (covalin)


Lesenswert?

Schönen Abend,

kann vielleicht jemand bisschen Licht ins Dunkel bringen bzgl. RTC am 
ATxmega128A1.

1.)
In der Doku (XMega A Manual, AppNote AVR1003 und AppNote AVR1314) wird 
für den internen 32kHz Oszillator (RC32K) teileweise von 32.000 Hz und 
dann wiederrum von 32.768 Hz gesprochen. Wenn man sich die Beispiele im 
AppNote AVR1314 (Real Time Counter) ansieht, dann muss es sich um 32.768 
Hz handeln. Kann das irgendjemand bestätigen?

2.)
Das Beispiel aus AVR1314 (Real Time Counter) funktioniert prima. Wenn 
man nun aber den Interrupt jede ms auslösen möchte, dann kommt dieser 
nur ca. alle 2,5 s (Wert 0 in RTC.PER). Ab einem Wert von 2 in RTC.PER 
erhält man eine mäßig genaue 3ms Uhr. Worin ist dies begründet?

3.)
AVR1314 (Real Time Counter) steht unter 2.3, dass der interne 32 kHz 
Oszillator verwendet werde kann. Im Manual sowie in der iox128a1.h sind 
dann aber nur die folgenden Quellen zulässig:

CLK_RTCSRC_ULP_gc = (0x00<<1),  /* 1kHz from internal 32kHz ULP */
CLK_RTCSRC_TOSC_gc = (0x01<<1),  /* 1kHz from 32kHz crystal oscillator 
on TOSC */
CLK_RTCSRC_RCOSC_gc = (0x02<<1),  /* 1kHz from internal 32kHz RC 
oscillator */
CLK_RTCSRC_TOSC32_gc = (0x05<<1),  /* 32kHz from 32kHz crystal 
oscillator on TOSC */

Die Varianten mit TOSC verweisen ja auf einen extern angeschlossenen 
Quarz. Oder sehe ich das falsch?

Ist es überhaupt möglich den intern 32.768 Hz Oszillator direkt zu 
verwednen und nicht nur das 1 kHz Signal?

4.)
Wie könnte man eine ms-Uhr mit den internen Taktgebern realisieren?

Ich weiß, viel Fragen, aber vielleicht hat sich jemand schon damit mal 
beschäftigt.

Gruß

von Yatko J. (denim)


Lesenswert?

Peter Speemann schrieb:
> CLK_RTCSRC_ULP_gc = (0x00<<1),  /* 1kHz from internal 32kHz ULP */
> CLK_RTCSRC_TOSC_gc = (0x01<<1),  /* 1kHz from 32kHz crystal oscillator
> on TOSC */
> CLK_RTCSRC_RCOSC_gc = (0x02<<1),  /* 1kHz from internal 32kHz RC
> oscillator */
> CLK_RTCSRC_TOSC32_gc = (0x05<<1),  /* 32kHz from 32kHz crystal
> oscillator on TOSC */
>
> Die Varianten mit TOSC verweisen ja auf einen extern angeschlossenen
> Quarz. Oder sehe ich das falsch?
>
> Ist es überhaupt möglich den intern 32.768 Hz Oszillator direkt zu
> verwednen und nicht nur das 1 kHz Signal?

scheint mir auch so. Es müsste doch aber mit dem internen PLL gehen (den 
Takt wieder von 1024Hz auf ein vielfaches hochzubekommen ). Bloß wie :)

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Yatko Jaens schrieb:
> Es müsste doch aber mit dem internen PLL gehen (den
> Takt wieder von 1024Hz auf ein vielfaches hochzubekommen ). Bloß wie :)

Nee, interne PLL braucht mindestens 312,5kHz Eingangsfrequenz.

Peter Speemann schrieb:
> Ist es überhaupt möglich den intern 32.768 Hz Oszillator direkt zu
> verwednen und nicht nur das 1 kHz Signal?

Nein. Nur bei Verwendung eines Uhrenquarzes an den TOSC-Pins können die 
32768Hz wahlweise direkt in einen Timer (RTC) eingespeist werden.

von Karl-Heinz Kruggel (Gast)


Lesenswert?

Xmega D Manual: seite 58, Figure 6-1 (clock system)
da sieht man, dass als Source-Clock 1.)PLL nicht möglich ist. 2.)wohl 
aber interner 32kHz Oscillator.(kann geteilt werden).
Desweiteren: Seite 67 stehen alle Group-Configurationswerte für den 
Source Multiplexer.
Soweit die Theorie, in der Praxis habe ich Schwierigkeiten. Wer noch?
KH Kruggel

von Martin J. (bluematrix) Benutzerseite


Lesenswert?


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.