Bei dem heute angekündigten Board Raspberry Pi Pico handelt es sich eben nicht um eine weitere Variante eines „gewöhnlichen“ Raspberry-Pi-Boards. Stattdessen wird mit dem RPi Pico ein Mikrocontroller-Modul bzw. ein kleines MCU-Board auf der Basis des niegelnagelneuen Mikrocontroller RP2040 vorgestellt. Warum ist das etwas so Besonderes? Weil dieser Mikrocontroller von der Raspberry Pi Org entwickelt wurde!

Wieso das?

Warum sollte man einen eigenen Mikrocontroller entwerfen, anstatt einen aus dem riesigen Pool bereits existierender Chips zu wählen? Laut Raspberry Pi Org bot keiner der aktuell erhältlichen Controller das erwünschte Preis/Leistungs-Verhältnis. Außerdem ermöglichte eine Eigenentwicklung die Integration innovativer und leistungsstarker Funktionen, die anderswo schlicht nicht erhältlich waren. Last not least ermöglichte die Entwicklung eines eigenen Mikrocontrollers einen Software-Stack und eine Dokumentation, die den hohen, mit Raspberry-Pi-Produkten verbundenen Anforderungen gerecht werden.

RP2040

Der Mikrocontroller RP2040 enthält zwei mit 133 MHz getaktete ARM-Kerne des Typs Cortex-M0+ sowie 264 KB RAM. Der Speicher für Software ist extern - es werden bis zu 16 MB unterstützt. Der Chip hat alles, was man von einem modernen Mikrocontroller erwartet: UARTs, SPI- und I2C-Ports, Timer, PWM, DMA und einen 12-bit-ADC. Zusätzliche Funktionen wie z.B. seine zwei PIO-Blöcke heben den RP2040 von anderen Mikrocontrollern ab.

PIO-Blöcke?

PIO steht für programmierbare Ein-/Ausgabe und stellt eine vielseitige Hardwareschnittstelle dar, die eine Vielzahl von I/O-Standards unterstützt. Jeder PIO-Block enthält vier programmierbare Zustandsautomaten, die in gewisser Weise als winzige Sub-Mikrocontroller angesehen werden können. Im Einklang mit dem Raspberry-Pi-Namensschema könnte man sie als Picocontroller bezeichnen. Ihre Ein- und Ausgänge können mit jeden GPIO-Pin verbunden werden, und diese Verbindungen können on-the-fly umkonfiguriert werden.

Eingebaute Bibliotheken

Andere Funktionen mit positiven Auswirkungen auf die Leistung sind eingebaute Bibliotheken für einfach genaue Gleitkommaberechnungen, schnelle Bit-Manipulationen und zum Verschieben und Kopieren von Speicher-Inhalten.
Laut Raspberry Pi Org soll es der RP2040 durchaus mit ARM-Cortex-M4-basierten Chips aufnehmen können.

Raspberry Pi Pico

Beim Raspberry Pi Pico handelt es sich um das erste auf dem Mikrocontroller RP2040 basierende Board. Der Aufbau ähnelt dem anderer Boards mit der MCU in der Mitte, einem Micro-USB-Anschluss an einem Ende und einer Reihe von Kontakten an jeder Seite. Am anderen Ende des Boards ist ein dreipoliger Debug-Anschluss vorhanden.

Raspberry Pi Pico
Raspberry Pi Pico basiert auf dem Mikrocontroller RP2040.

RPico misst 51 x 21 mm, was exakt der Größe eines ESP32-Pico-Kit entspricht. Das Board ist also etwas größer als ein Arduino Nano oder Micro und sogar etwas kleiner als ein Arduino MKRZero, der ebenfalls auf einem ARM Cortex-M0+ basiert, aber nur einen Core beherbergt.
 
RPico ist extrem preiswert, da dieses Board für etwa 5 € erhältlich sein wird – ähnlich wie das Board STM32 BluePill, das mit einer ARM-MCU des Typs Cortex-M3 bestückt ist. RPico verfügt über 2 MB QSPI-Flash-Speicher und 25 der 30 GPIO-Pins des RP2040 sind auf die Erweiterungsstecker herausgeführt.

Komfortables & komplettes Entwicklungssystem

Um Anwendungen für den RP2040 bzw. RPico in C, C++ oder Assembler zu erstellen, braucht es das zugehörige SDK. Damit lässt sich alles von einfachen LED-Blinkprogrammen bis hin zu vollwertigen Laufzeitumgebungen wie z.B. MicroPython (siehe unten) erstellen.
 
Eine Bibliothek mit vordefinierten PIO-Funktionen ist im SDK enthalten, aber Sie können natürlich auch Ihre eigenen Routinen schreiben. Da einige dieser vorgefertigten Blöcke grafische Anwendungen wie LED-String- und Display-Treiber betreffen, wird der RP2040 wohl auch bald in Multimedia-Anwendungen auftauchen. Eine der Demo-Apps für RPico ist ein VGA-Video-Player, bei dem die PIO-Blöcke des RP2040 in Echtzeit das Videosignal generieren.
 
Das SDK läuft natürlich auch auf einem „normalen“ RPI, aber nicht nur darauf. Mit ihm lassen sich Anwendungen in der IDE von Visual Studio Code erstellen. RPico selbst kann entweder an einen USB-Port für Drag-'n'-Drop-Programmierung oder an den 40-poligen Erweiterungsstecker eines RPi angeschlossen werden, um GDB und OpenOCD über SWD zu verwenden. Alles sehr praktisch und gut dokumentiert.

MicroPython

Wer lieber in Python programmiert, kann das auf den RPico portierte MicroPython (inklusive Multicore-Unterstützung) einsetzen. Da MicroPython dem normalen Python sehr ähnlich ist, kann RPico- theoretisch auch Python-Anwendungen ausführen, die für ein anderes RPi-Board entwickelt wurden.

Fazit

Raspberry Pi Pico wird sich wahrscheinlich zur harten Konkurrenz für Arduino und ähnliche Plattformen entwickelt, da er einerseits günstiger ist und zudem Debugging bietet. Vielleicht gibt es bald ein RP2040-basiertes Arduino-Board?
 
Das ursprüngliche Ziel hinter Raspberry Pi war, das Computer für jeden zugänglich zu machen. Mit dem RP2040 und dem Pico-Board wird nun versucht, dies auch bei Mikrocontrollern zu erreichen. Was auch immer rund um RPi Pico und der RP2040 passieren wird: Mit diesem Board und dieser MCU hat die Raspberry Pi Org auf jeden Fall einen tollen Job gemacht!