PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SleepMode oder ähnliches



surfer
04.08.2005, 16:37
Hallo zusammen

Ich habe ein kleines Modul, dass mir Daten von einem Funkmodul abholt und auf einem Display anzeigt. Das Ganze wird mit einer 9V Batterie (oder bei höherem Stromverbrauch mehrere kleinere...) betrieben und hat nur einen Taster, um die Informationen auf dem Display zu wechseln...
Eigentlich dachte ich zuerst an einen zusätzlichen Schalter, der mir die 9V-Leitung unterbricht oder herstellt um das ganze ein- und auszuschalten. Jedoch habe ich mir jetzt gedacht, dass eine Schaltung mit nur einem einzigen Taster wirklich sehr "edel" wäre. Mein Ziel: Alle Peripherie (AVR, Display, Funkmodul, einfach das ganze Stromnetz) soll sich beim ersten Tastendruck einschalten. Die weiteren Tastendrücke werden dann als normale Befehle erkannt und schalten die Display-Infos durch... Nach einer gewissen Zeit (z.B. 30s) soll sich das ganze automatisch abschalten...
Hätte da jemand eine Idee wie ich das realisieren könnte? Das wäre wirklich eine sehr schöne Lösung!!
Gibt es da einen SleepMode vom AVR der beim Aufwachen einen Interrupt auslöst (mit dem man z.B. ein Transistor ansteuern könnte)?
Macht auch nichts, wenns dann immer ein paar mA zieht...

Ach ja: Alles sollte morgen Abend fertig sein und daher könnt ihr mir auch sagen, dass ich es gleich vergessen kann, wegen zu grossem Aufwand etc.... Dann bau ich halt den Ein/Aus Schalter ein...

surfer
04.08.2005, 16:39
Note: Ich weiss, dass ich das Problem mit FlipFlop und LM555 eigentlich lösen könnte, jedoch ist dann der Schaltungsaufwand eher wieder gross....

Florian
04.08.2005, 16:48
Hallo surfer!
Ich konnte Deiner Beschreibung leider nicht entnehmen, in welcher Sprache das ganze programmiert werden soll!?
Hast Du schonmal einen AVR programmiert bzw. schonmal in das Datenblatt geschaut und nach Sleep gesucht? ;o) *schlaf gut*

Im Grunde genommen ist es sehr einfach!

surfer
04.08.2005, 16:56
Hallo Florain

Die Sprache habe ich noch nicht erwähnt... sorry...
Ich programmiere in C und bin (so kann ich das glaub langsam sagen) schon recht versiert im Umgang mit Atmel Controllern...
Werde mir mal die Sleep-Funktion anschauen....

Florian
04.08.2005, 16:58
Hallo surfer!
Ich verschiebe Dich mal in AVR C-Programmierung, mit C kenne ich mich nicht so gut aus, aber das Ganze ist im Datenblatt recht gut beschrieben!

SprinterSB
04.08.2005, 17:03
Es gibt verschiedene Stromsparmode bei AVRs, von Idle über PowerDown bis StandBy.
In allen Modi bleiben INT0 und INT1 funktionsfähig, teilweise allerdings nur levelgetriggert. Sie wecken die CPU wieder auf.
Zum Stromsparen.

Besten sleep-Mode auswählen
Unbenötigte Komponenten wie ADC, AnaComp deaktivieren.
CPU-Frequemz so klein wie möglich (Perscale, Quarz)
Spannungsversorge so klein als möglich
Unbenötigte Pullups deaktivieren (ziehen Strom wenn LOW gezogen)
Fuses anpassen: Quarz/AVR-Oszillator-Treiberstufe braucht mehr power bei Konfig für eine noisy-Umgebung.

surfer
04.08.2005, 17:33
OK. Ich verwende den PowerDown Modus... funktioniert soweit. Nun möchte ich ihn über INT0 wieder aufwecken, jedoch will das nicht so ganz... Muss ich vor dem Sleep-Mode noch den Interrupt aktivieren?
Möchte mit ihn mit dem gleichen Schalter wieder "aufwecken". Mit einem "HIGH" am INT0....

Dino Dieter
04.08.2005, 18:35
Hallo

Du mußt den Int vorher einstellen wie du ihn brauchst, den entsprechenden PIN auf Eingang umschalten und dann den Sleep Modus setzen.

Gruß
Dieter

surfer
04.08.2005, 20:00
Ah OK. Jetzt hab ichs... Die Interrupts bleiben aktiviert... also genau gleiche Anwendung wie sonst...

Danke