MicroPython: Taktrate ändern

Die Standard-Taktrate des Raspberry Pi Pico mit MicroPython-Firmware beträgt 125 MHz (125.000.000 Hz). Die Taktrate hat Einfluss auf die Ausführungsgeschwindigkeit und den Stromverbrauch. Je höher die Taktrate, desto schneller ist der Pico, aber desto höher ist auch der Stromverbrauch. Je geringer die Taktrate, desto langsamer ist der Pico aber auch geringer ist sein Stromverbrauch.

Eine Taktrate von 125 MHz ist in der Regel ausreichend, um den Raspberry Pi Pico programmieren und die meisten Programme schnell genug ausführen zu können, ohne dass es zu spürbaren Verzögerungen kommt. Die meisten Programme kommen vermutlich auch mit weniger Geschwindigkeit klar. Wenn zum Beispiel nur eine LED blinken soll.

Die Taktrate von 125 MHz ist immer beim Start eines Programmcodes eingestellt. Braucht man eine andere Taktrate, dann muss die im Programmcode zur Laufzeit geändert werden.
Eine Taktrate zwischen 10 und 250 MHz sind erfahrungsgemäß problemlos einstellbar. Frequenzen darunter lassen sich nicht einstellen und darüber ist die Eingabe und Ausgabe über fast alle Schnittstellen problembehaftet.

Wichtig

Beim ändern der Systemtaktrate kann sich der Peripherietakt ändern, was sich auf die Geschwindigkeit bereits initialisierter Objekte für UART, SPI, I2C und PWM auswirkt. Um Probleme zu vermeiden, sollten die Frequenzen der Schnittstellen erneut eingestellt werden.

Stromsparen durch Senken der Taktrate

Der Vorteil einer geringeren Taktrate wäre, dass man damit den Stromverbrauch des Picos verringern könnte, was für den Batterie-Betrieb nützlich ist. Allerdings hat das Senken der Taktrate auch einen Nachteil. Während dem Erstellen und Testen des Programmcodes mit Thonny reagiert der Pico nur verzögert auf Dateisystem-Operationen. Beispielsweise beim Laden der Dateiliste, Speichern und Laden von Dateien. Man sollte das Senken der Taktfrequenz also erst ganz am Ende der Entwicklungszeit vorsehen, wenn der Programmcode fehlerfrei läuft.

Mehr Rechenleistung durch Erhöhen der Taktrate

Wenn 125 MHz zu langsam sein sollten, dann kann man die Taktgeschwindigkeit bis 250 MHz ohne Probleme erhöhen. Übertakten kann man den Pico auch weit darüber hinaus (bis 400 MHz?). Allerdings muss man dann mit unvorhersehbaren Problemen rechnen. Denn nur bis 250 MHz werden alle Schnittstellen ganz normal arbeiten.

Sollte man versehentlich eine Taktfrequenz im Programmcode einstellen, die den Pico aus dem Tritt bringt, dann ist das kein großes Problem. Sofern der Pico dabei nicht kaputt gegangen ist, stellt er sich automatisch auf 125 MHz zurück.

MicroPython: Taktfrequenz ändern

Mit MicroPython erfolgt die Einstellung der Taktfrequenz im Programmcode über den Befehl machine.freq(). Der Wert muss in Hertz angegeben werden. Dabei ist auf die korrekte Anzahl der Nullen zu beachten. Zum Beispiel:

10 MHz = 10.000.000 Hz (10000000)
100 MHz = 100.000.000 Hz (100000000)

import machine
print('Alte Taktfrequenz:', machine.freq(), 'Hz')
machine.freq(12000000)
print('Neue Taktfrequenz:', machine.freq(), 'Hz')

Die einzustellende Taktfrequenz muss bei jedem Aufruf eines Programmcodes neu eingestellt werden, weil der Raspberry Pi Pico bei einem Neustart auf 125 MHz bzw. 125.000.000 Hz standardmäßig eingestellt ist.

Messung: Stromverbrauch bei einer Taktfrequenz von 12 MHz

Wie viel Strom kann man beim Senken der Taktfrequenz sparen?

Für die folgende Messung verwenden wir einen USB- und DC-Power-Monitor von Portapow als Messgerät und schalten es in die USB-Verbindung zwischen Host-Computer und dem Raspberry Pi Pico.

Folgender Programmcode senkt die Taktfrequenz von 125.000.000 Hz (Hertz) bzw. 125 MHz (Megahertz) auf 12.000.000 Hz (Hertz) bzw. 12 MHz (Megahertz).

import machine
import time
print('Alte Taktfrequenz:', machine.freq())
machine.freq(12000000)
print('Neue Taktfrequenz:', machine.freq())
while True: time.sleep(1)

Messung vor der Programmausführung:

  • Strom: 0,018 A

Messung nach der Taktänderung:

  • Strom: 0,005 A

Fazit zur Messung

Wenn man mit wenig Aufwand möglichst viel Strom sparen möchte, dann ist das Senken der Taktfrequenz das Mittel der Wahl. Mit 0,005 A bzw. 5 mA liegt der Stromverbrauch des Raspberry Pi Pico bei der einer leuchtenden LED. Das ist ein sehr niedriger Wert.

Wenn man einen Aufbau oder eine Steuerung mit dem Raspberry Pi Pico realisiert, und später mit einem Akku oder Batterie betreiben will, sollte man prüfen, ob der Aufbau auch mit einer niedrigeren Taktrate funktioniert. Wenn ja, kann man damit die Laufzeit der Batterie deutlich verlängern.

Wenn das Senken der Taktfrequenz so viel Strom spart, warum lässt man den Pico dann nicht immer gleich mit zum Beispiel 12 MHz laufen?
Das ist ein berechtigte Frage. Und die lässt sich leicht beantworten. Wenn man einen Pico standardmäßig mit 12 MHz laufen lassen würde, dann wäre dabei auch die Datenverarbeitung durch die Kommunikation über USB mit dem Host-Computer betroffen. Das heißt, sie wäre langsamer. Die Verzögerung ist schon erheblich und macht keinen Spaß mehr. Die Taktfrequenz unter 125 MHz zu senken ist also nur im Stand-alone-Betrieb wirklich sinnvoll.

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython

Elektronik-Set Pico Edition

Das Elektronik-Set Pico Edition ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

Elektronik-Set jetzt bestellen Online-Workshop buchen

Online-Workshop: Programmieren mit dem Raspberry Pi Pico

Programmieren mit dem Raspberry Pi Pico

Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.

Online-Workshop buchen

Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.

Termine und Newsletter-Anmeldung

 

Elektronik-Sets für das Hardware-nahe Programmieren