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


von Micha (Gast)


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!!

von Laeubi (Gast)


Lesenswert?

Nur LOW Level kann den AVR wecken.

von Magnus Müller (Gast)


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

von Micha (Gast)


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!

von Daniel M. (usul27)


Lesenswert?

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

von Micha (Gast)


Lesenswert?

Super!
Danke euch!

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.