www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATMega8 mit uart aktivität aus sleep wecken


Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Ich will einen ATMega an einen Bus hängen, auf dem nicht dauernd
Aktivität ist.
Mit einem Timer messe ich, ob 6s keine Aktivität war und lege den Atmel
dann schlafen in Power-down.
Nun will ich ihn aufwecken, wenn der Bus wieder aktiv ist. Dafür
verbinde ich einfach den RX Pin vom Uart mit dem INT0.
Wenn der Bus weiter sendet müsste der Interrupt durch den
Flankenwechsel ausgelöst und damit der Atmel geweckt werden.
Passt das so?
Weckt der Interrupt den Atmel egal ob auf Flankenwechsel oder Low
programmiert?

Und die Hauptfrage: Muss ich noch irgendwas beachten, wenn ich die Pins
einfach verbinde? Ändert sich elektrisch etwas, der Widerstand oder so
oder kann ich mir Störungen einstreuen?

Dank euch schon mal!!

Autor: Laeubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur LOW Level kann den AVR wecken.

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Siehe Datenblatt Seite 34:

>> Note that if a level triggered interrupt is used for wake-up from
>> Power-down mode, the changed level must be held for some time to
>> wake up the MCU. Refer to “External Interrupts” on page 66 for
>> details.
>>
>> When waking up from Power-down mode, there is a delay from the
>> wake-up condition occurs until the wake-up becomes effective. This
>> allows the clock to restart and become stable after having been
>> stopped. The wake-up period is defined by the same CKSEL Fuses
>> that define the Reset Time-out period, as described in “Clock
>> Sources” on page 26.

Sprich:

Der µC benötigt erst einmal eine Weile bis er aufgewacht /
ausgeschlafen ist. Höchstwahrscheinlich wird er dabei das erste
Datenbyte verlieren, da der USART während des Power-Down Modes nicht
aktiv ist.

Gruß,
Magnetus

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Magnetus:
Das wäre nicht schlimm mit dem ersten Byte. Das ist eh nicht für mich
;)
Den Text im Datenblatt habe ich auch gelesen. Aber da steht nicht
explizit, dass NUR Low Level ihn wecken kann.
Wäre aber egal, weil bei 9600bit/s der Bus lange genug auf low level
ist.

Die beiden Pins INT0 und Rxd zu verbinden ist kein Problem?

Danke für eure Antworten!

Autor: Daniel M. (usul27)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Solange du INT0 nicht als Ausgang benutzt sollte das kein Problem sein.

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super!
Danke euch!

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.