Forum: Mikrocontroller und Digitale Elektronik AVR: Wakeup wenn Pin HI oder LO


von TGM (Gast)


Lesenswert?

Hallo,

kennt sich jemand näher mit AVR-Controllern aus?

Ist es möglich, ein Wakeup durchzuführen, wenn ein Pin am AVR ein HI- 
oder Lo-Signal erhält?

Die Leitung zum Pin kennt nämlich drei Zustände:
-hochohmig
-HI
-LO

Der Controller soll nur aufwachen, wenn der Zustand HI oder LO eintritt, 
bei "hochohmig" soll er "weiterschlafen".

von Frickelfritze (Gast)


Lesenswert?

TGM schrieb:
> kennt sich jemand näher mit AVR-Controllern aus?

Nein gibt es hier kaum.

Aber man kann sich in Datenblättern und hier

http://www.mikrocontroller.net/articles/Hauptseite

schlau machen.

von Karl M. (Gast)


Lesenswert?

Yepp,

steht in dem gesuchten AVR µC Datenblatt.
Unter Powersave Mode.

von (prx) A. K. (prx)


Lesenswert?

Karl M. schrieb:
> Yepp,

Nix yep. 3-wertige Logik kennt er nicht.
Nicht ohne zusätzliche Hardware.

von Uwe (de0508)


Lesenswert?

Hi,

Auf die Frage "Ist es möglich, ein Wakeup durchzuführen, wenn ein Pin am 
AVR ein HI- oder Lo-Signal erhält?" bezogen, ja ein 8Bit AVR µC kann 
dass.

Auch wenn seine Signalquelle drei Zustände kennt.

von Erwin D. (Gast)


Lesenswert?

Uwe S. schrieb:
> Hi,
>
> Auf die Frage "Ist es möglich, ein Wakeup durchzuführen, wenn ein Pin am
> AVR ein HI- oder Lo-Signal erhält?" bezogen, ja ein 8Bit AVR µC kann
> dass.
>
> Auch wenn seine Signalquelle drei Zustände kennt.

Wenn das Signal von Low nach High wechselt oder andersrum, stimmt das.
Deswegen heißt die Funktion auch "PinChange". Auf den Zustand triggern 
geht nicht sondern nur auf den Wechsel.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

TGM schrieb:
> Der Controller soll nur aufwachen, wenn der Zustand HI oder LO eintritt,
> bei "hochohmig" soll er "weiterschlafen".

Das geht nur mit einem ADC Eingang, da ein normaler AVR Eingang nur 2 
Zustände kennt, High oder Low. Dafür sorgt ein Schmitt Trigger Eingang.

Aber ein ADC, der auch 'mitten dazwischen' erkennt, kann nicht im Sleep 
Modus abgefragt werden, sondern nur im sogen. 'Noise Reduction' Modus. 
Dabei schläft alles, aber nicht der ADC.

von M. K. (sylaina)


Lesenswert?

Erwin D. schrieb:
> Auf den Zustand triggern
> geht nicht sondern nur auf den Wechsel.

Doch, das geht schon mit den externen Interrupts. Diese können nicht nur 
auf Flanken sondern, beim Atmega328 z.B., auch auf Zustand LOW einen 
Interrupt auslösen. Allerdings ist dieser Interrupt nicht in allen 
Sleep-Modes verfügbar, genaueres ist im entsprechenden Datenblatt 
nachzulesen.

Interessanter finde ich aber eigentlich den Zustand High-Z am Eingang 
des AVRs zu erkennen. Da muss wohl einen gesonderte Logik vor den 
Eingangspin, oder? Zumindest hab ich spontan keine Idee wie ein AVR das 
feststellen kann.

von Dampf T. (ouuneii)


Lesenswert?

Naja, den internen Pullup einschalten.. Dann wird hochohmig zu einen 
High. Nicht unterscheidbar von einem High. Meist verwendet man die 
Sleepmodi fuer Stromsparanwendungen, und dann sollte man keine solchen 
Spielchen bringen. Denn ein Pullup zieht Strom. Ein undefinierter 
Eingangs-Pin zieht auch Strom.

von Peter D. (peda)


Lesenswert?


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.