Ein Beitrag von Chris, geschrieben am 8. November 2008 in Tipps:

Strom sparen beim ATtiny13

Als nützliches Helferlein hat sich der Mikroprozessor ATtiny13 von Atmel bewiesen. Das OhOh basiert auf ihm, und einige andere Spielereien, die bald die Cacher der Gegend (hoffentlich) in den Wahnsinn treiben.

So ein µC tut die fast die ganze Zeit nur eines: Nix. Also schicken wir ihn schlafen. Und weil ich immer wieder vergesse, was man beim Programmieren da berücksichtigen muss, um möglichst wenig wertvollen Saft zu verbraten, kommt hier meine ultimative, persönliche Erinnerungsliste.

  • debugWIRE ausschalten
  • ADC auschalten
  • Analog Comparator ausschalten
  • Brown Out Detector ausschalten
  • Internal Voltage Reference
  • Watchdog ausschalten
  • Port Pins konfigurieren

debugWIRE ausschalten

Das debugWIRE Feature – so nützlich es zum Programmieren ist – verbrät einiges an Strom. Deshalb muss er vor dem Indenwaldtragen mit Hilfe des Programmiergeräts abgeschaltet werden.

ADC ausschalten

Wenn wir in den Sleep-Modus gehen, benötigen wir keinen ADC. Also setzen wir das ADEN-Bit im ADCSRA auf 0.

Auch sollte die Internal Voltage Reference nicht als ADC Referenz Spannung geschaltet sein: Das Bit REFS0 im ADMUX muss 0 sein.

Analog Comparator ausschalten

Der Analog-Comparator wird wohl auch nicht benötigt. Dazu setzen wir das ACD-Bit im ACSR auf 1.

Außerdem müssen wir sicherstellen, dass die Internl Voltage Reference nicht auf den Analog Comparator geschaltet ist. Dazu muss ACBG in ACSR auf 0 gesetzt werden.

Brown Out Detection ausschalten

Wer braucht schon eine Brown Out Detection im Wald. Wenn die Batterien leer werden, ist es eigentlich egal, ob das Ding Unsinn macht oder nicht. Also setzen wir mit dem Programmiergerät die BODLEVEL1 und 2 Fuses auf 1, d.h. BOD disabled.

Watchdog ausschalten

Den Watchdog auszuschalten ist etwas schwierig, es gibt dazu aber ein Code-Beispiel im Datenblatt auf Seite 37. Die einfachste Lösung ist, ihn gar nicht erst einzuschalten.

Port Pins konfigurieren

Unbenutzte Port-Pins sollten als Eingang geschaltet und der interne Pull-up aktiviert werden. Dazu muss für alle Ports das DDxn-Bit gelöscht und das PORTxn-Bit gesetzt werden.

Wenn der Analog Comparator genutzt und die Digitalwerte der Pins nicht benötigt werden, müssen die Bits AIN0D und AIN1D im DIDR0 Register gesetzt werden. Damit werden die Digital-Logiken abgeschaltet.

Wenn der ADC genutzt und die Digitalwerte der Pins nicht benötigt werden, müssen die Bits ADC0D bis ADC3D im DIDR0 Register gesetzt werden. Damit werden die Digital-Logiken abgeschaltet.

Tags:

Kommentare:

TrackBack · RSS Comments

  • Kommentar von Rene:

    Jetzt sage nicht, dass dem OhOh der Saft ausgegangen ist. ;-)

    12. November 2008 @ 10:29
  • Kommentar von Chris:

    Das würde ich niemals öffentlich zugeben :)

    Das alte OhOh liegt noch verpackt in einer Platiktüte im Kofferraum. Ich habe mich mit den Insektennestern darin noch nicht befasst.

    Ich denke, das OhOh NG wird deutlich zuverlässiger laufen.

    12. November 2008 @ 11:50

Schreibe einen Kommentar: