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ß
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 :)
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.
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
hier gibt es was dazu: http://www.jtronics.de/avr-projekte/xmega-tutorial/xmega-tutorial-real-time-counter.html
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.