Forum: Mikrocontroller und Digitale Elektronik Timer/counter0 asynchronously


von Karl (Gast)


Lesenswert?

Hallo Zusammen,

ich wollte mal nachfragen, was es mit dem asynchron betriebenen Timer 
auf sich hat. Da ich den Controller (at128) hauptsächlich im Sleepmodus 
betreiben möchte, würde ich ganz gern wissen, was der Abschnitt im 
Datenblatt genau verlangt.

"When the SM2..0 bits are written to 011, the SLEEP instruction makes 
the MCU enter Powersave
mode. This mode is identical to Power-down, with one exception:
If Timer/Counter0 is clocked asynchronously, i.e., the AS0 bit in ASSR 
is set, Timer/Counter0
will run during sleep. The device can wake up from either Timer Overflow 
or Output Compare
event from Timer/Counter0 if the corresponding Timer/Counter0 interrupt 
enable bits are set in
TIMSK, and the global interrupt enable bit in SREG is set.
If the Asynchronous Timer is NOT clocked asynchronously, Power-down mode 
is recommended
instead of Power-save mode because the contents of the registers in the 
asynchronous timer
should be considered undefined after wake-up in Power-save mode if AS0 
is 0.
This sleep mode basically halts all clocks except clkASY, allowing 
operation only of asynchronous
modules, including Timer/Counter0 if clocked asynchronously."


Danke und Gruß
Karl

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Was auch immer ein "at128" sein soll.

Aber vielleicht fängst du ja einfach mal damit an, dein Problem
zu erläutern.

. Kannst du das Englisch dort nicht verstehen?
. Hast du die Beschreibung zum AS0-Bit im ASSR gelesen?
. Hast du Sleep Mode schon mal gelesen?

(Neuere AVRs benutzen den timer 2 für den Asynchronbetrieb.)

von Karl (Gast)


Lesenswert?

>Kannst du das Englisch dort nicht verstehen?
ja doch..
>Hast du die Beschreibung zum AS0-Bit im ASSR gelesen?
ja sicher..
>Hast du Sleep Mode schon mal gelesen?
ja klar..
Das Datenblatt von dem AtMEGA128 habe ich nicht seit gestern, aber mein 
Problem war eher die Begrifflichkeit "asynchron" und meine Frage war 
eigentlich, ob ich für den Betrieb einen Uhrenquarz brauche. Aber hat 
sich alles erledigt. Das hin und her schalten zwischen Quarz und 
Uhrenquarz funktioniert hervorragend mit dem AS0 bit...
>(Neuere AVRs benutzen den timer 2 für den Asynchronbetrieb.)
Danke für die Info, beim Atmega128L funktionierts mit Timer/Counter0, 
aber vielleicht kannst du mir ein Beispiel nennen, damit ich weiss über 
welche Controller du redest...

Gruß Karl

von Hc Z. (mizch)


Lesenswert?

Karl schrieb:
>>(Neuere AVRs benutzen den timer 2 für den Asynchronbetrieb.)
> Danke für die Info, beim Atmega128L funktionierts mit Timer/Counter0,
> aber vielleicht kannst du mir ein Beispiel nennen, damit ich weiss über
> welche Controller du redest...

z.B. ATmega324P (644P, ...)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Karl schrieb:

> Das Datenblatt von dem AtMEGA128 habe ich nicht seit gestern, aber mein
> Problem war eher die Begrifflichkeit "asynchron"

Von asynchron redet man deshalb, weil der Timer in dieser Betriebsart
nicht vom Haupttakt bzw. einen davon geteilten Takt (der ja immer noch
synchron, also phasenstarr mit dem Haupttakt liegt) betrieben wird.
Die Taktflanken können also im Vergleich zum Haupttakt zu beliebigen
Zeiten auftreten.  Da der Rest des Controllers synchron zum Haupttakt
arbeitet, muss man intern spezielle Vorkehrungen treffen, diese beiden
Takt-Domains aneinander anzugleichen.  Einen Teil dieser Vorkehrungen
findest du im Register ASSR wieder.

> und meine Frage war
> eigentlich, ob ich für den Betrieb einen Uhrenquarz brauche.

Ja, alternativ müsste ein externer 32-kHz-Oszillator auch gehen.

> Das hin und her schalten zwischen Quarz und
> Uhrenquarz funktioniert hervorragend mit dem AS0 bit...

Vorsicht: 32-kHz-Uhrenquarze sind sehr hochohmig.  Die Folge davon
ist, dass sie mehrere 100 ms (je nach Quarz, bis zu 1 s!) benötigen,
bis die Schwingung stabil läuft.  Daher schaltet man das AS0-Bit
nur ein einziges Mal ein und lässt diesen Oszillator hernach einfach
laufen.

> aber vielleicht kannst du mir ein Beispiel nennen, damit ich weiss über
> welche Controller du redest...

Eins hat dir Heike schon genannt.  Praktisch alle AVRs, die neuer sind
als ATmega128 benutzen den Timer 2 als optionalen asynchronen Timer.

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.