RPi Pico - Need for Speed      

    von Martin Müller            

Elektronik-Labor  Projekte  Mikrocontroller  Raspberry     



Es gibt mehrere Möglichkeiten den RPi Pico zu programmieren. Für den Einstieg erscheint die Programmierung mit MicroPython in der Thonny-IDE oder die Arduino-IDE mit einer entsprechenden Erweiterung am besten geeignet. Man kann schauen, wie schnell der RPi Pico arbeitet, wenn er mit verschiedenen IDEs programmiert wurde. Dazu wird in einer Endlossschleife der Pin 1 des RPi Pico ein- und ausgeschaltet.

MicroPython

MicroPython in der Thonny-IDE schafft dies mit einer Frequenz von ca. 63 kHz. Der RPi Pico läuft selbst mit einer Taktfrequenz von 125 MHz. Die behäbigen 63 kHz sind der Tatsache geschuldet, dass das Pythonscript immer wieder Zeile für Zeile so übersetzt wird, dass der Mikrocontroller damit etwas anfangen kann.

Betrachtet man sich den Spannungsverlauf an Pin 1, so sieht man, dass jede zehnte Schwingung etwas länger dauert als die übrigen (s. Bild oben). Offensichtlich läuft hier noch der eine oder andere Prozess zusätzlich im Hintergrund ab.


Arduino-IDE



Verwendet man die Arduino-IDE, so empfiehlt es sich die von Earle F. Philhower III. erstellte Boarderweiterung zu verwenden. Sie kann leicht als zusätzliche Boardverwalter-URL hinzugefügt werden. Eine detaillierte Beschreibung findet sich beispielweise hier:
https://arduino-pico.readthedocs.io/_/downloads/en/latest/pdf/

Der Quellcode aus der Arduino-IDE wird vor der Übertragung auf den RPi Pico in einen maschinenlesbaren Code umgewandelt (compiliert), was der Geschwindigkeit beim Ausführen des Programms zugute kommt. Das Umschalten des Pins erfolgt mit einer Frequenz von etwa 594 kHz. Das ist gut 9 mal schneller als mit MicroPython. Der Spannungsverlauf an Pin 1 zeigt, dass das Umschalten jede Millisekunde für 10 Mikrosekunden unterbrochen wird, um auch hier Zeit zu geben, Prozesse im Hintergrund ablaufen zu lassen.

Die Arduino-IDE lässt sich auch in „reinem C“ programmieren. Dazu ersetzt man „void setup()“ und „void loop()“ durch „int main()“. Mit der oben genannten Boarderweiterung stehen tatsächlich alle Funktionen der RPi Pico-SDK zur Verfügung. Anders als im Arduino-Sketch wird jetzt nur das compiliert und zum Mikrocontroller übertragen, was man selber in den Quellcode geschrieben hat. An Pin 1 wird eine Frequenz von 31,25 MHz gemessen. Das ist etwa 52 mal schneller als der ursprüngliche Arduino-Sketch, und knapp 500 mal schneller als MicroPython.



Um wirklich die volle Kontrolle über den RPi Pico zu erhalten, wird man aktuell nicht umhin kommen das RPi Pico-SDK samt zugehöriger Toolchain zu installieren. Entsprechende Hinweise findet man in der Dokumentation der Raspberry Pi Foundation.

MicroPython in der Thonny-IDE unterstützt die PIO-Funktionen (Programmable Input Output) des RPi Pico. Damit kann man sehr schnell beliebige Pins setzen und abfragen. Allerdings läuft das eigentliche Pythonscript, wie schon beschrieben, recht langsam.

Programmiert man die Arduino-IDE mit der genannten Boarderweiterung in „reinem C“, gestattet sie vollen Zugriff auf die Funktionen des RPi Pico-SDK. Sie ist somit sehr schnell, unterstützt jedoch nicht die PIO-Funktionen.







Elektronik-Labor  Projekte  Mikrocontroller  Raspberry