c't 26/2021
S. 106
Test & Beratung
Raspi-Mikrocontroller

Pico-Beere

Der Mikrocontroller Raspberry Pi RP2040

Der RP2040 ist der erste selbst entwickelte Chip der Raspberry Pi Foundation. Der Mikrocontroller macht einiges anders als seine Konkurrenten und eignet sich damit für besondere Projekte.

Von Dr. Maik Merten und Christof Windeck

Mancher mag sich fragen, ob die Menschheit wirklich noch einen weiteren Mikrocontroller braucht. Schließlich gibt es bereits eine riesige Vielfalt, die vermeintlich jeden erdenklichen Anwendungsbereich abdeckt [1]. Doch der RP2040 der Raspberry Pi Foundation hat einige attraktive Besonderheiten. Der neue Mikrocontroller und die damit bestückte Entwicklerplatine Raspberry Pi Pico erschienen Anfang 2021. Der RP2040 erschließt der Raspberry Pi Foundation andere, neue Einsatzbereiche und Geschäftsfelder.

Der mit 40-Nanometer-Technik von TSMC gefertigte Mikrocontroller RP2040 ist auch einzeln erhältlich und kostet weniger als 1 Euro. Kurz nach dem Start des etwa 4 Euro teuren Platinchens Raspi Pico, das an einen Arduino Nano erinnert, kamen zahlreiche andere Mikrocontrollerboards und Steuermodule mit RP2040 heraus, siehe Tabelle auf Seite 109.

Der Raspberry Pi Pico mit dem Mikrocontroller RP2040 hat 2 MByte Flash-Speicher und 26 GPIO-Kontakte.
Bild: Raspberry Pi Foundation

RP2040-Besonderheiten

Der RP2040 hat vier wesentliche Besonderheiten: Zwei Rechenkerne statt nur einem, spezielle Ein-/Ausgabefunktionen namens Programmable I/O (PIO), offengelegter Boot-ROM-Code und kein eingebauter Flash-Speicher. Dazu kommt noch eine Kombination weiterer Eigenschaften, die in dieser Preisklasse nicht häufig sind.

Aber der Reihe nach: Die beiden 32-Bit-Rechenkerne des RP2040 sind vom ARM-Typ Cortex-M0+. Sie laufen mit bis zu 133 MHz Taktfrequenz, also schneller als in vielen anderen Mikrocontrollern. Dadurch steht relativ viel Rechenleistung bereit, allerdings keine Hardware-Einheiten für die Verarbeitung von Gleitkommazahlen (Floating Point, FP) und zur Division ganzer Zahlen (Integer). Die Raspi Foundation packt deshalb einerseits optimierte FP-Routinen ins Boot-ROM und hat andererseits eine Hardware-Einheit für Integer-Division in den RP2040 eingebaut.

Die beiden Rechenkerne lassen sich parallel nutzen, aber man kann den zweiten auch für Spezialaufgaben verwenden, unter anderem fürs Debugging. Auch die Verknüpfung der beiden Rechenkerne untereinander und mit den Ein-/Ausgabekontakten (General Purpose I/O, GPIO) hat die Raspi Foundation sehr geschickt gelöst, dazu später mehr.

Die zweite Besonderheit des RP2040 sind die beiden PIO-Funktionseinheiten. Sie lassen sich dazu nutzen, vergleichsweise leistungsfähige Schnittstellen sozusagen „in Software“ nachzubilden, sogar einen VGA- oder HDMI-Ausgang für ein Display. Die PIOs taugen ferner zur Ansteuerung von LED-Streifen, Barcode-Scannern, I2S-Soundchips, (Micro-)SD-Karten oder als CAN-Bus-Interface. In manchen Fällen braucht man noch einen passenden Transceiver-Baustein, aber einer für den CAN-Bus kostet nur 1,50 Euro.

Der Verzicht auf eingebauten Flash-Speicher macht den RP2040 billiger und erspart es der Raspi Foundation, mehrere Chipvarianten mit unterschiedlicher Flash-Ausstattung zu verkaufen. Der Nachteil liegt auf der Hand: Anders als etwa beim Arduino muss zusätzlich ein separater NOR-Flash-Chip auf die Boards. Die kleinsten 16-MBit-Chips (2 MByte) kosten kaum 50 Cent, der RP2040 kann bis zu 128 MBit (16 MByte) anbinden.

Im RP2040 steckt auch ein USB-1.1-Controller; den haben zwar andere Mikrocontroller ebenfalls, aber der im RP2040 kann auch als Host arbeiten. Im Device-Modus wiederum lässt sich der RP2040 sehr leicht mit Software versorgen, indem er sich als Massenspeichergerät an einem PC anmeldet (der nötige Code steckt im Boot-ROM). Den Programmcode für sein Projekt kopiert man dann via USB in den Flash-Chip, nämlich als Image im Format „USB Firmware Flash“ (U2F).

Kommentieren