Forum: Mikrocontroller und Digitale Elektronik XMega128A1 RTC mit externem Takt (nicht Quarz oder Oszillator)


von Alexander H. (ill_son)


Lesenswert?

Hallo,

ich möchte einen Timer vom XMega128A1 mit einem externen Takt aus einer 
DS3234 versorgen. Da das nachdem, was ich dem Datenblatt so entnehmen 
kann, nur mit dem RTC geht, wollt ich diesen auch verwenden. Nun steht 
in der Übersichtdarstellung des RTC auf S.188 die Auswahlmöglichkeit 
"External Clock" an TOSC1. An andere Stelle steht aber, dass TOSC nur 
für Quarze geht. Nun bin ich etwas verunsichert. Kann ich an TOSC1 
einfach ein Rechtecksignal anlegen? Wie bekomme ich alternativ den Takt 
an den Timer?

Grüße, Alex

von Paul R. (atmega9)


Lesenswert?

--> Wieso willst du überhaupt einen externen Quarz verwenden? Der 
Platzbedarf und Aufwand sprechen da doch total dagegen. Außerdem 
funktioniert ein Quarz doch ganz prima.

--> Aber gut, wenn du das trotzdem probieren willst, stellst du einfach 
auf einen externen Oszillator um. Am OSC1 Pin musst du dann das Signal 
anlegen. Besser ist natürlich Sinus als Rechteck. Dann im Programm noch 
den Takt übernehmen und fertig. Dauerlösung ist das aber auf keinen 
Fall! Diese Methode eignet sich jedoch gut zum Reparieren von verfusten 
AVRs.

mfg mega9

von Marcel (Gast)


Lesenswert?

Wirf mal einen Blick auf das Event System. Damit sollte es theoretisch 
(ich selber habe damit noch nicht gearbeitet) möglich sein einen Timer 
über ein externes Signal zählen zu lassen.

von Alexander H. (ill_son)


Lesenswert?

Hallo,

danke für Eure Antworten. Ich möchte ja nicht den Controller mit dem 
Takt betreiben, sondern lediglich den Timer. Der interne Oszillator ist 
für meine Zwecke viel zu ungenau und egal was ich über die DFLL lese, 
alle tuen sich schwer damit, und wenn ich das Errata lese, scheint da ja 
auch noch einiges im Argen zu liegen. Beim Mega war das kein Thema, da 
gab's für den Timer2 einen separaten Takteingang. Den vermisse ich 
gerade sehr.

Grüße, Alex

von da1l6 (Gast)


Lesenswert?

Hallo Alexander

Ich kann Marcel nur recht geben. Das XMega Event System kann einen Pin 
als Taktgeber für einen beliebigen Timer weiterreichen.

Man muss dazu die Taktquelle des Timers auf einen Event-Kanal stellen, 
etwa so:
TCxy.CTRLA = TC_CLKSEL_EVCHz_gc;

Und anschlißend den Pin Events generieren lass und diese auf den selben 
Event Kanal legen:
PORTx.PINyCTRL = PORT_ISC_FALLING_gc;
EVSYS.CHzMUX   = EVSYS_CHMUX_PORTx_PINy_gc;

da1l6

von Alexander H. (ill_son)


Lesenswert?

Danke,

das probier ich dann gleich aus.

Grüße...

von Alexander H. (ill_son)


Lesenswert?

Hey Marcel & da1l6,

hab's eben geschafft, es umzusetzen. Vielen Dank Euch beiden.

Grüße, Alex

: Bearbeitet durch User
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.