Hallo. Wie kann ich folgende Schaltung auf möglichst geringen Stromverbrauch optimieren ? Einsatzort : Fernbedienung PC1 ist auf einer anderen Platine an der Basis eines Transistors angeschlossen. Am Emitter die IR-LED, der Kollektor über einen 33 Ohm-Widerstand an der 3V-Batteriestromversorgung angeschlossen. Zwischen den Lücken auf der unteren Seite sind rechts neben den Schaltern low-current Leuchtdioden eingesetzt (fehlen wegen der Target 100-Pin-Grenze :-) ). Die Kathoden weisen zum 680 Ohm Widerstand. K1 dient zum Programmieren PA geht an die Zeilenmatrix der Tastatur PB0-3 PC5-7 geht an die Spaltenmatrix der Tastatur Geplant ist beim Auslesen der Matrix, dass eine Zeile auf Low gesetzt wird, und die Spalten ausgelesen werden. Dabei ist zu erwähnen, dass die Pins PB0-3 und PC5-7 Inputs mit aktiviertem Pull-up sind. Dabei soll die ganze Ausleseprozedur äußerst kurz geschehen, um nicht allzuviel Strom über die Pull-ups zu verschwenden. Im Rest der Zeit werden Beide Ports auf low-Ausgang gesetzt. Die Meiste Zeit befindet sich der Mikrocontroller im Power-down Modus. Sobals ein Taster gedrückt wird, soll ein über die Dioden D1-4 zugeführter High-Pegel am Interrupteingang den Controller aufwecken. (geht doch so, oder ?) Die Dioden sollen gleichzeitig eine Auswirkung auf die anderen "Tastersignale" verhindern. Systeme wie ADC, Watchdog und andere nicht benötigte Spielereien sind doch normalerweise ausgeschaltet ? (oder muss man die erst abschalten) Was kann ich tun, um noch mehr Strom zu sparen ?
Du solltest eventuell den Betreff ändern : "Von ohnehin schon wenig Strom wenig Strom sparen" ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) PS: Mir fällt auf dem ersten Blick auch nichts auf.
eine Variante wäre noch der Einsatz eines MSP430. Statt 2µA im power-down braucht der nur ca. 0,1µA. Falls die Software schon fertig, sicher keine echte Alternative :-)
So einen Unterschied macht das auch nicht. Der ATMEGA16 braucht auch nur 0.3 µA. Die Software hab ich zwar noch nicht angefangen, doch auf den ATMEGA16 möcht ich trotzdem nicht verzichten.
Wofür die Widerstände an den Tastern? Wie wärs mit Vorwiderstände von den LEDs weglassen und diese dann Pulsen?
Die Widerstände an den Tastern sorgen für einen Definierten Pegel an den Porteingängen des AVR (Pulldowns). Ich hatte mal ein Gerät, dass u.a. auf Tastendruck einen Zähler erhöht/erniedrigt, und diesen auf 7-Segment-Anzeige ausgibt (nur ein Teil vom ganzen), und die Anzeige hat dauernd hin-und her-geflackert, bis ich einen 10K Pulldown angeschlossen habe. Dann lief es einwandfrei. Denn woher soll ein µC sich die Entscheidung nehmen, ob ein Signal 0V oder 5V entspricht, wenn gar kein Signal anliegt ? Bringt das Pulsen mehr als Vorwiderstand weglassen ? Außerdem werden die LEDs schon gepulst, da das IR-Signal die LEDs ansteuert (mit K3 wählbar, ob Invertiert oder nicht), aber die Helligkeit (die ich als einzigen Effekt ansehe) würde sich dadurch auch nicht wesentlich ändern. Es erhöht denke ich nur den Programmieraufwand.
Ok, Pulldown klingt logisch, kam mir auf die schnelle nich in den Sinn. Größe ist für Stromsparen auch OK. Wenn die eh schon gepulst sind, hilft dat alles nix mehr. Du kannst also allerhöchstens nur noch am MC selber sparen. ansonsten scheints voll ausgereizt
Hallo Christoph, "Systeme wie ADC, Watchdog und andere nicht benötigte Spielereien sind doch normalerweise ausgeschaltet ? (oder muss man die erst abschalten)?" Ich denke, daß das deinzige System, das nach einem Power-up automatisch aktiv ist, der Analog-Komparator ist. Wenn man den abschaltet, dann kann man nochmal etwas Strom sparen. (Bit ACD in Register ACSR setzen schaltet den Analog-Komparator ab.) Gruß Schmidle
ich meine mich zu entsinnen, daß da irgendwas war... entweder mußte man alle (also die nicht benutzten) portpins auf high oder low schalten. ich bin mir fast sicher das es high war. keine ahnung wieviel das bei dir bringt. einfach mal testen und messen
Bei den AVRs die nicht benutzten Pins als Eingänge definiert lassen, aber deren interne Pullups aktivieren. So werden die Eingänge auf einem definiertem Pegel gehalten und schwingen nicht. Das spart auch Energie.
Der AVR ist mit internem RC Oszilator etwas genügsammer, als mit einem externem Quartz. Wenn die Genauigkeit reicht, ist da noch ein geringes Potential. Mfg. Wolfgang
Du solltest die JTAG-PINs deaktivieren, wenn Du keinen Programmer oder Debugger (JTRF in MCUCSR ist nicht gesetzt) angeschlossen hast (JTD, ebenfalls MCUCSR). Die nun freien PINs sind ebenfalls als Eingang mit aktiviertem PullUp zu konfigurieren. Auch das spart Strom.
Tachchen, die Brownout-Detection aussschalten und die CKOPT-FUSE entsprechend setzen. Damit schwingt der Quartz nur mit verminderter Amplitude. das spart auch nochmals Strom. Ob CKOPT nun Haken oder nicht, vergesse ich immer. Einfach mal am Quartz mit einem Oszi nachsehen.(Multimeter geht auch) Und so langsam wie möglich laufen lassen, Spannung runter auf Minimum. Gruß AxelR.
Gibt es eine Möglichkeit, den USART erst einzuschalten, wenn etwas empfangen wird ? Oder sollte man für diesen Fall die RXD Leitung an den INT0 legen (ist noch frei), und den dann auf level change einstellen ? Muss ich PD0 und PD1 auch als Pullup-Eingang setzen, wenn sie im USART-Betrieb sind ? Analog : PD2+3 für INT0+1 ? Spare ich mehr Strom, wenn ich XTAL1 und 2 unbeschaltet lasse, oder ihnen einen Signalpegel gebe (Vcc oder GND, je nach dem, was besser ist) ?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.