Fischertechnik
AVR
Raspberry Pi
Elektronik
Netzwerk
Sonstiges


















Impressum

Stromverbrauchmessung an einem Raspberry Pi Model B Rev. 2

Der Batteriebetrieb eines Raspi erscheint durchaus sinnvoll und möglich. Ein aktuelles Modell B habe ich mit der Speicherkarte EMT MICRO SDHC 8GB CLASS 10MA ausgestattet und nutze den Ethernet-Anschluss mit 100 Mbps und einer laufenden ssh-Session.
Als Betriebssystem kommt ein aktuelles raspbian (Linux 3.6.11+ #538 PREEMPT Fri Aug 30 20:42:08 BST 2013 armv6l unknown unknown GNU/Linux) zum Einsatz.
Weder HDMI, noch RCA ist in Benutzung.
Für die Messung wurde an den Pins 2 (+5 V) und 6 (GND) des Erweiterungsports (P1) ein Labornetzteil mit 5,0 V angeschlossen und der Strom mit einem eingeschleiften Multimeter gemessen.



SpannungRandbedingungStromverbrauch
5,00 Vkeine Optimierung360 mA
5,00 Vtvservice --off340 mAAusschalten des nicht benötigten Videoteils
5,00 Vcpufreq-set -g powersave340 mAmit entsprechender Konfiguration in /boot/config.txt
Bei 100 MHz ist der Strom nicht messbar verändert.
5,00 Vcpufreq-set -g ondemand380 mAStrom steigt erst mit echter CPU-Last
5,00 Vcpufreq-set -g performance380 mAStrom steigt erst mit echter CPU-Last
5,00 VAbziehend des Netzwerkkabels290 mA
5,00 Vsudo halt110 mAHerunterfahren des Systems
Reduzierung der Versorgungsspannung
4,75 Vkeine Optimierung350 mA
4,75 Vtvservice --off340 mAAusschalten des nicht benötigten Videoteils
4,75 Vsudo halt110 mAHerunterfahren des Systems
Hardware-Erweiterung
5,00 Vtvservice --off
Edimax EU-4208 USB 2.0 Fast-Ethernet-Adapter
510 mA100 Mbps
5,00 Vtvservice --off
Edimax N150 Wireless USB Adapter Nano EW-7811Un
430 mAkeine WLAN-Kommunikation

Variabler Takt für den Raspberry Pi

Mit der Installation eines zusätzlichen Moduls ist eine automatische Reduzierung des CPU-Taktes auf bis minimal 100 MHz möglich.
sudo apt-get install cpufrequtils
sudo cat << EOF >> /boot/config.txt
force_turbo=0       # turns on frequency scaling
arm_freq=700        # sets max frequency
arm_freq_min=100    # sets min frequency
EOF
cpufreq-set -g ondemand
sudo reboot

Im Rahmen der Messgenauigkeit (10mA) konnte ich keine Reduzierung des Stromverbrauchs bei der Reduzierung des CPU-Taktes von 700 auf 100 MHz feststellen.
Ohne Garantieverlust soll eine Erhöhung der Maximalfrequenz auf 1000 MHz zulässig sein.

Steuern der aktuellen CPU-Frequenz

Auch ohne die Generierung bzw. Reduzierung der Last kann die CPU-Frequenz mittels cpufreq-set -g {powersave|ondemand|performance} die CPU-Frequenz gesetzt werden.

Abfrage der aktuellen CPU-Frequenz

$ cpufreq-info
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Bitte melden Sie Fehler an cpufreq@vger.kernel.org.
analysiere CPU 0:
  Treiber: BCM2835 CPUFreq
  Folgende CPUs laufen mit der gleichen Hardware-Taktfrequenz: 0
  Die Taktfrequenz folgender CPUs werden per Software koordiniert: 0
  Maximale Dauer eines Taktfrequenzwechsels: 355 us.
  Hardwarebedingte Grenzen der Taktfrequenz: 100.0 MHz - 700 MHz
  mögliche Regler: conservative, ondemand, userspace, powersave, performance
  momentane Taktik: die Frequenz soll innerhalb 100.0 MHz und 700 MHz.
                    liegen. Der Regler "ondemand" kann frei entscheiden,
                    welche Taktfrequenz innerhalb dieser Grenze verwendet wird.
  momentane Taktfrequenz ist 100.0 MHz.

Abfrage der aktuellen CPU-Temperatur

$ cat /sys/class/thermal/thermal_zone0/temp
48692
Der ausgegebene Wert ist in Millicelsius, muss also durch 1000 geteilt werden, um die Temperatur in den üblichen Grad Celsius zu erhalten.