MicroPython: Taktrate/Taktfrequenz ändern

Die Taktrate bzw. Taktfrequenz eines Mikrocontrollers hat Einfluss auf die Ausführungsgeschwindigkeit und den Stromverbrauch.

  • Je höher die Taktrate, desto schneller arbeitet der Mikrocontroller, aber desto höher ist auch der Stromverbrauch.
  • Je niedriger die Taktrate, desto langsamer arbeitet der Mikrocontroller, aber desto geringer ist auch sein Stromverbrauch.

Die Standard-Taktrate ist je nach Mikrocontroller und MicroPython-Firmware unterschiedlich eingestellt.

  • Raspberry Pi Pico: 125 MHz (125.000.000 Hz)
  • Raspberry Pi Pico 2: 150 MHz (150.000.000 Hz)

Die Standard-Taktrate wird vom Hersteller empfohlen und ist in der Regel ausreichend, um den Mikrocontroller programmieren und die meisten Programme schnell genug ausführen zu können.
Die Standard-Taktrate ist immer beim Start eines Mikrocontrollers eingestellt. Braucht man eine andere Taktrate, dann muss die im Programmcode zur Laufzeit geändert werden.

Wichtig zu beachten

Das Ändern der Taktrate kann sich auf die Geschwindigkeit bereits initialisierter Objekte für UART, SPI, I2C und PWM auswirken. Um Probleme zu vermeiden, sollten die Frequenzen der Schnittstellen nach dem Ändern der Mikrocontroller-Taktrate erneut initialisiert werden.
Es ist also keine gute Idee, die Taktrate im laufenden Betrieb ständig zu ändern.

Stromsparen durch Senken der Takfreqeunz

Die meisten Programme werden vermutlich auch mit einer geringeren Taktrate schnell genug arbeiten. Wenn zum Beispiel nur eine LED blinken soll. Hierdurch ergibt sich Potential zum Stromsparen, wenn die Taktfrequenz nur so hoch ist, wie notwendig.
Der Vorteil einer geringeren Taktrate wäre, dass man damit den Stromverbrauch des Mikrocontrollers 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 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 Takfreqeunz

Wenn die Standard-Taktrate zu langsam sein sollte, dann kann man die Taktrate erhöhen. Allerdings muss man beim Übertakten mit unvorhersehbaren Problemen rechnen. Denn nur zu bis einer bestimmten Taktrate werden der Mikrocontroller und alle Schnittstellen ganz normal arbeiten.
Sollte man versehentlich eine Taktfrequenz im Programmcode einstellen, die den Mikrocontroller aus dem Tritt bringt, dann ist das kein großes Problem. Sofern der Mikrocontroller dabei nicht kaputt gegangen ist, stellt er sich beim Neustart automatisch auf die Standard-Taktrate zurück.

MicroPython: Taktfrequenz ändern

Mit MicroPython erfolgt die Einstellung der Taktfrequenz im Programmcode über den Befehl machine.freq(). Der ermöglicht es, die Mikrocontroller-Taktfrequenz und die Frequenz für UART und SPI zu ändern. Die Werte müssen in Hertz angegeben werden. Dabei ist auf die korrekte Anzahl der Nullen zu beachten (1 MHz = 1000000 Hz).

  • Die Mikrocontroller-Taktfrequenz kann in einem Bereich von weniger als 48 MHz bis etwa 250 MHz oder mehr eingestellt werden. Der Standardwert beim Start ist 125 MHz.
  • Die Peripherie-Taktfrequenz muss entweder 48 MHz oder identisch mit der Mikrocontroller-Frequenz sein. Der Standardwert ist 48 MHz.

Eine Taktfrequenz kleiner 48 MHz und größer 250 MHz kann bei der Nutzung von Schnittstellen wie UART, SPI und I2C problematisch sein.

Hinweis: Wenn die Peripherie-Taktfrequenz geändert wird, ändert jede bereits vorhandene Instanz von UART und SPI ihre Baudrate und muss möglicherweise neu konfiguriert werden.

Programmcode zum ändern der Taktfrequenz

Zum Beispiel:

  • 10 MHz = 10.000.000 Hz (10_000_000)
  • 100 MHz = 100.000.000 Hz (100_000_000)
import machine
print('Alte Taktfrequenz:', machine.freq(), 'Hz')
machine.freq(50_000_000)
print('Neue Taktfrequenz:', machine.freq(), 'Hz')

Die gewünschte Taktfrequenz muss bei jedem Neustart des Programmcodes neu eingestellt werden, weil der Raspberry Pi Pico bei einem Neustart auf die Standard-Taktrate eingestellt wird.

Raspberry Pi Pico: Energie sparen bei niedriger Taktrate

Eine Möglichkeit, um Strom beim Raspberry Pi Pico zu sparen ist die Reduzierung der Taktfrequenz. Messungen zeigen, dass der Stromverbrauch bei niedrigeren Frequenzen auf bis auf 6 bis 7 mA sinkt. Dies ist besonders vorteilhaft bei akkubetriebenen Anwendungen, wodurch die Laufzeit verlängert werden kann.

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