www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Timer/counter0 asynchronously


Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.)

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht 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, ...)

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.