Alles über den Raspberry Pi Pico und den RP2040

Mit dem neuen Raspberry Pi Pico betritt Raspberry Pi in mehrfacher Hinsicht Neuland.

Es handelt sich bei diesem Produkt erstmalig um keinen Einplatinencomputer, sondern einen Mikrocontroller.

Das besondere daran: der Chip auf dem der Pico basiert, der RP2040, ist - wie man vielleicht am Namen merkt, von Raspberry Pi in-house designed worden.

Es ist auch das günstigste Board von Raspberry Pi - bei uns erhalten Sie den Pico ab 4,10 € brutto (zzgl. Versand), in der Komfort-Variante Pico Comfort mit vorbestückten Headern für 6,99 € (zzgl. Versand). Und das ohne Mengenbeschränkungen!

Was kann der Pico? Und was kann er nicht?

Der Pico ist ein Mikrocontroller-Development-Board mit

  • 2MB Flash,
  • 2 x ARM Cortex M0+ CPU-Cores (bis zu 133 MHz),
  • 264K SRAM 
  • 26 x GPIO Pins (3.3V Logikpegel), davon 3 ADC fähig (Analog-Eingänge)

Er ist auf - für Mikrocontroller-Verhältnisse - hohe Leistungsfähigkeit ausgelegt, und hat einige besonders interessante Features, zu denen wir gleich noch kommen. 

Wie man an diesen Spezifikationen merkt ist der Pico nicht mit den anderen Raspberry Pi Boards (SBCs / Einplatinencomputern) vergleichbar. Der Pi Zero W zum Beispiel, hat 512MB RAM - also fast 2000 x mehr RAM, und hat einen ARMv6 ISA Core (ARM1176JZF-S), der mit 1 GHz getaktet wird.

Die Taktfrequenz zweier verschiedener Architekturen zu vergleichen ist schwierig, die DMIPS Werte sind sinnvoller. In der schnellsten Ausführung, als 40LP (ich gehe davon auss dass 40 hier für die Process Node steht) hat der ARM Cortex M0+ 1.36 DMIPS/MHz - damit ergibt sich eine Gesamtleistung von 361,76 DMIPS (Dhrystone Million instructions per second). Der Pi Zero W hat im Vergleich dazu eine Leistung von 1250 DMIPS - ist also ca. 3,5 x schneller.  

Pico und die anderen Raspberry Pis basieren auf komplett verschiedenen SoC Architekturen - während die Pis (0 / 1 / 2 / 3 / 4) alle einen eingebauten Grafikprozessor (GPU, VideoCore IV bzw. VI) haben, fehlt er komplett beim Pico - es gibt auch keine HDMI oder Video-Out Schnittstelle.

Hinweis: Mit einem interessanten Trick kann man dennoch VGA-Video mit Hilfe des Pico ausgeben (dazu gleich noch mehr).  

Raspberry Pi OS kann auf dem Pico nicht ausgeführt werden, auch andere Linux-Distributionen wie LibreELEC und weitere XBMC / Kodi Varianten sind darauf nicht lauffähig.

Der Pico kann demgemäß auch nicht für die üblichen Anwendungen, Spiele, und Multimedia-Systeme genutzt werden, wie seine größeren Geschwister (Raspberry Pi 4, Raspberry Pi 3B+, Raspberry Pi Zero W, ...). 

Kommen wir nun dazu was der Pico kann, und was er sehr gut kann!

Sie können den Pico komplett frei programmieren. Auf dem Pico wird ausschließlich Ihr Programm ausgeführt - nicht hunderte von verschiedenen Prozessen, wie unter Raspberry Pi OS / Linux. 

Echtzeit

Ihr Programm wird in Echtzeit ausgeführt - je nachdem wie Sie es programmiert haben, können Sie damit Events präzise timen, zum Beispiel die Ansteuerung von Motoren, das Auslesen von Sensoren, und generell Steuerungs- und Überwachungsaufgaben.

Analoge Eingänge

Der Pico ist der erste Raspberry Pi, der ab Werk analoge Eingänge hat. Der RP2040 hat insgesamt 5 ADC Eingänge (Analog Digital Converter / A/D Wandler). 

  • SAR ADC (successive-approximation ADC)
  • 500 kS/s (mit externer 48MHz Clock)
  • 12-bit (9.5 ENOB, effective number of bits - tatsächliche Auflösung)

Ein ADC Eingang wird für den internen Temperatursensor des RP2040 verwendet, und ein ADC Eingang wird am Pico zur Spannungsüberwachung verwendet. 

Die ADC Eingänge haben ein DMA Interface (d.h. sie können auf Speicher zugreifen ohne die CPU in Anspruch zu nehmen).

Damit lassen sich viele interessante Projekte realisieren - bspw. eine Ansteuerung mit analogen Drehpotis. 

SPI, UART, I2C, PWM

Die "Klassiker" sind am RP2040 auf den 30 GPIO Pins natürlich auch vorhanden:

  • 2 x SPI
  • 2 x UART
  • 2 x I2C
  • 8 x zwei-Kanal PWM

außerdem gibt es noch:

  • 4 x General Purpose Clock Output
  • 4 x ADC Eingang (siehe oben)
  • PIO auf allen Pins (siehe unten)

manche dieser Schnittstellen bzw. Pins sind beim Pico für interne Zwecke im Einsatz, der Pico exponiert nur 26 GPIO Pins. 

Flash execute in place (XIP)

Damit muss man sich keine Gedanken darüber machen, Code erst in den RAM zu laden - der Code kann auch direkt aus dem Flash ausgeführt werden. Oft benötigter Code wird dabei gecached, für bessere Performance.

PIO (Programmable IO)

Die PIO ist meiner Meinung nach das coolste Feature am RP2040 und damit dem Raspberry Pi Pico. Es hebt den Pico damit auch von vielen anderen vergleichbaren Mikrocontroller-Plattformen ab.

PIO ist ein von den Hauptprozessoren unabhängig programmierbares Hardware-Interface. Es kann damit eine Vielzahl von verschiedenen Schnittstellen zuverlässig emulieren:

  • 8080 und 6800 Parallele Schnittstelle
  • I2C
  • 3-Pin I2S
  • SDIO (SD Karten-Schnittstelle)
  • SPI, DSPI, QSPI
  • UART
  • DPI oder VGA (via Widerstandsnetzwerk / DAC)

Der Raspberry Pi RP2040 hat zwei PIO Blöcke, mit jeweils vier State Machines. Jede State machine kann dabei bis zu 30 GPIOs (alle GPIOs auf dem RP2040) überwachen und manipulieren.

Die PIO State Machines sind voll programmierbar, und ausschließlich auf I/O spezialisiert. Dabei wird vor allem auch auf präzises Timing geachtet. 

Beispielsweise kann das PIO Interface genutzt werden, um zeitkritische (timing-sensitive) Anwendungen, wie die Ansteuerung von LED Streifen, stabil und zuverlässig aufzusetzen. 

Im Vergleich zu "fest" integrierten Logik-Blöcken ermöglichen diese PIOs daher auch neuartige und exotische Schnittstellen anzubinden.

Hinweis: unsere Schwesterseite picockpit hat mehr Informationen über Raspberry Pi Pico Video Output (DVI & VGA) (englisch)

Castellated Edges / Bestückung / Integration in kommerziellen Projekten

Der Pico kommt als Referenzdesign des RP2040, und kann bereits in Ihre eigene Anwendungen und Boards integriert werden. Wir erhalten ihn von Raspberry Pi auf Bestückungsgurten - mit 480 Stück pro Gurt. Dank der Castellated Edges kann der Pico in SMD Technik verarbeitet werden.

Wir können für Sie gerne ein Hardware-Design auf Basis des Pico realisieren, und bieten auch Software-Entwicklung für den Pico an. Kontaktieren Sie uns bitte bei Interesse.

Fragen und Antworten (Pico FAQ)

Wie wird der Pico programmiert?

Zum Programmieren wird der Pico in den Programmiermodus gesetzt: schalten Sie den Pico stromlos, drücken Sie auf den BOOTSEL Knopf. Schließen Sie jetzt den Pico an den Computer an - er wird per microUSB mit Strom versorgt.

Dazu meldet er sich beim Booten per microUSB Anschluss als Massenspeichergerät. Man kann das vorige Programm dabei nicht auslesen, ausschließlich eine neue Programmdatei draufziehen. 

OK, aber ich meinte in welchen Programmiersprachen wird der Pico programmiert?

Raspberry Pi unterstützt von Anfang an die Programmierung des Pico in C und MicroPython (einer vereinfachten, kompakten Abwandlung von Python). Es gibt sogar ein Buch "Get Started with MicroPython on Raspberry Pi Pico". 

Wie jede andere Plattform ist absehbar dass mit der Zeit auch andere Sprachen für den Pico verfügbar werden.

Wie gut ist der Pico dokumentiert?

Es gibt ein Datenblatt für den RP2040 das (pre-release) 646 Seiten hat. Es gibt eine umfangreiche API mit Dokumentation. Mit Hilfe dieser Dokumentation sollte die Programmierung des Pico gut möglich sein.

Kann ich den Pico mit mehreren Stromquellen gleichzeitig betreiben? Ist das sicher?

Der Pico sollte nicht ohne spezielle Sicherheitsvorkehrung mit mehreren Stromquellen gleichzeitig angeschlossen werden. Wir legen dazu unseren Pico Essential Kits und dem Pico Maker Set eine Schutzdiode bei, die vor die zusätzliche Stromquelle geschaltet werden muss. Diese Diode verhindert ein "Rückschlagen" der höheren Spannung und damit Beschädigungen am Pico und Ihren anderen Geräten. 

Der Preis der Schutzdiode ist allerdings ein Spannungsabfall - der Akku wird schneller entladen. Wenn der Pico möglichst lange betrieben werden soll, empfehlen wir ihn direkt am Akku bzw. an den Battieren anzuschließen, und dann darauf zu achten dass das microUSB Kabel nicht parallel am Computer eingesteckt wird. 

Warum heißt der neue Chip RP2040?

RP2040 kommt von einer Aufschlüsselung auf die einzelnen Stellen:

  • 2 Prozessor Kerne
  • grob welcher Typ Prozessor (0 -> M0+)
  • floor(log2(ram / 16k)) -> 4 bei 264K SRAM
  • floor(log2(nonvolatile / 16k)) oder 0 wenn kein nichtflüchtiger Speicher (Flash) eingebaut ist -> hier 0 (der Speicher ist auf dem Pico verbaut)

Wie wir sehen deutet diese Art der Bennung darauf hin, dass es sehr wahrscheinlich weitere Prozessoren / SoCs aus dem Hause Raspberry Pi geben wird, in verschiedenen Ausführungen. 

Pico

2 comments

Levent

Levent

Hallo, Ich finde die Beschreibung sehr nützlich.
Ein Kritik: Es wurde nirgend wo erwähnt, welche Spannungen die PIOs aushalten. 3.3V oder auch 5V

Steven Seifried

Steven Seifried

microUSB statt USB Typ-C (wahrscheinlich aus Kostengründen) ist zwar schade, ich hab aber dennoch direkt vorbestellt

Leave a comment

All comments are moderated before being published