RP2040 – Aufschlüsselung des Mikrocontrollers von Raspberry Pi

Wenn Sie sich schon einmal mit eingebetteten Systemen oder DIY-Elektronik beschäftigt haben, haben Sie wahrscheinlich schon von dem RP2040 gehört. Aber was genau zeichnet diesen winzigen Chip von Raspberry Pi in der Welt der Mikrocontroller aus? Der RP2040 wurde 2021 als Herzstück des legendären Raspberry Pi Pico auf den Markt gebracht und hat sich still und leise zu einem Favoriten unter Hobbybastlern, Pädagogen und sogar professionellen Ingenieuren entwickelt. In diesem ausführlichen Artikel untersuchen wir, warum dieses Dual-Core-Wunderwerk die Möglichkeiten eines preisgünstigen Mikrocontrollers neu definiert – und wie Sie noch heute damit experimentieren können.

Was ist RP2040?

Der RP2040 ist eine Mikrocontroller-Einheit (MCU), die von der Raspberry Pi Foundation eingeführt wurde. Er dient als Kernkomponente für den Raspberry Pi Pico und andere Entwicklungsboards. Er wird derzeit auf der offiziellen Website für 10 US-Dollar verkauft.

An image showing the RP2040 microchip for sale priced at 10.00
RP2040 Microchip - Available for Purchase at $10.00

RP2040-Spezifikation

Der RP2040-Chip wird in einem 7 × 7 mm großen QFN-56-Gehäuse mit den folgenden spezifischen Spezifikationen geliefert:

  • Dual-Core-Arm-Cortex-M0+ mit 133 MHz
  • 264 KB On-Chip-SRAM und 2 MB Onboard-Flash-Speicher
  • Unterstützt bis zu 16 MB Off-Chip-Flash-Speicher über einen dedizierten QSPI-Bus
  • Ausgestattet mit einem DMA-Controller
  • Verfügt über 30 GPIO-Pins, von denen 4 als analoge Eingänge verwendet werden können
  • Verfügt über 2 UARTs, 2 SPI-Controller und 2 I2C-Controller
  • Bietet 16 PWM-Kanäle
  • Bietet USB 1.1-Host- und Geräteunterstützung
  • Enthält 8 programmierbare Raspberry Pi I/O (PIO)-Zustandsmaschinen für benutzerdefinierte Peripherieunterstützung
  • Unterstützt den UF2-fähigen USB-Massenspeicher-Bootmodus für Drag-and-Drop-Programmierung
A dimension diagram of the RP2040 chip, showing various measurements in millimeters.
RP2040 Chip Dimension Diagram (in mm)

Erläuterung zur Benennung des RP2040

Der Name RP2040 spiegelt seine Kernspezifikationen wider:

  • RP: Steht für Raspberry Pi, den Entwickler.
  • 2: Bezeichnet Dual-Core-Arm-Cortex-M0+-Prozessoren.
  • 0: Steht für den Kerntyp (in diesem Fall M0+).
  • 4: Berechnet als floor(log2(SRAM/16k)), wobei 264 KB SRAM → ~4.
  • 0: Abgeleitet von floor(log2(non - volatile/16k)), mit 2 MB Flash → ~7, aber in der Benennung auf 0 vereinfacht.
An illustration explaining the naming convention of the RP2040 microchip with arrows and descriptions for each part of the name
RP2040 Microchip Naming Convention Explanation

RP2040 Pinbelegung

Der RP2040 verfügt über 30 GPIO-Pins, die für verschiedene Anwendungen äußerst vielseitig einsetzbar sind. Sie können digitale Eingaben von Geräten wie Tasten und Sensoren lesen und digitale Ausgaben zur Steuerung von LEDs und Relais bereitstellen.

Bemerkenswert ist, dass sein programmierbares Eingangs-/Ausgangs-Subsystem (PIO) über zwei Zustandsmaschinen verfügt. Dies ermöglicht die Erstellung benutzerdefinierter Kommunikationsprotokolle, wie z. B. die einfache Steuerung von WS2812-LED-Streifen oder den Aufbau einer benutzerdefinierten VGA-Schnittstelle, wodurch die CPU-Auslastung reduziert wird.
A top view pinout diagram of the RP2040 microchip labeling various pins such as GPIO power and communication pins
RP2040 Microchip Pinout Diagram (Top View)

RP2040 Blockdiagramm

Der RP2040-Chip verfügt über:

  • 2 UARTs: Serielle Kommunikation für Geräte/Module/Computer.
  • 2 SPIs: Hochgeschwindigkeits-Master-Slave-Datenübertragung (z. B. Flash-/SD-Karten).
  • 2 I2Cs: Multi-Geräte-Bus für Sensoren/EEPROMs über SDA/SCL-Leitungen.
  • 16 PWMs: Steuerung der Motordrehzahl/LED-Helligkeit über Tastverhältnismodulation.
Block diagram of the RP2040 microchips internal architecture showing components like processors peripherals and memory
RP2040 Microchip Internal Architecture Block Diagram

Entwicklungsunterstützung für RP2040

Offizielles Entwicklungsboard – Raspberry Pi Pico

Der Raspberry Pi Pico dient als offizielles Entwicklungsboard für den RP2040 und ist ein fantastischer Einstiegspunkt für Entwickler. Mit einer Größe von nur 65 mm x 17 mm ist dieses kompakte Board mit einem Preis von nur 4 US-Dollar unglaublich erschwinglich und somit für eine Vielzahl von Anwendern zugänglich, von Hobbybastlern mit kleinem Budget bis hin zu Studenten, die die Welt der Mikrocontroller erkunden möchten.

Images of four Raspberry Pi Pico series development boards (Pi Pico, Pi Pico H, Pi Pico W, Pi Pico WH) based on the RP2040 microcontroller, showcasing their board layouts and component differences.
A lineup of Raspberry Pi Pico series boards powered by the RP2040 MCU

Einer der großen Vorteile des Raspberry Pi Pico ist seine einfache Handhabung. Er hat eine einfache Form mit einer Reihe von GPIO-Pins auf jeder Seite, die zur leichteren Identifizierung deutlich gekennzeichnet sind. Dieses Layout macht es einfach, externe Komponenten wie Sensoren, Aktoren oder Displays anzuschließen. So lässt sich beispielsweise ein Temperatursensor wie der DHT11 ganz einfach an den Pico anschließen, indem man den Datenpin des Sensors mit einem der GPIO-Pins des Pico verbindet und die Strom- und Masseanschlüsse herstellt.

Der Pico verfügt außerdem über einen integrierten USB-Anschluss, der sowohl zur Stromversorgung als auch zur Programmierung des Boards dient. Wenn er an einen Computer angeschlossen ist, erscheint er als Massenspeichergerät, was eine einfache „Drag-and-Drop”-Programmierung ermöglicht. Wenn Sie beispielsweise ein MicroPython-Skript oder eine kompilierte C/C++-Binärdatei geschrieben haben, können Sie die Datei einfach auf das virtuelle Laufwerk des Pico kopieren, und das Programm wird ausgeführt.

Zusätzlich zu den grundlegenden Hardware-Funktionen wird der Raspberry Pi Pico mit einer Fülle von offizieller Dokumentation und Beispielcode geliefert. Die offizielle Raspberry Pi-Website bietet detaillierte Anleitungen zu allen Themen, von den ersten Schritten mit dem Board bis hin zur fortgeschrittenen Nutzung seiner Funktionen. Diese Ressourcen sind äußerst hilfreich für Anfänger, die gerade erst anfangen, sich mit der Programmierung von Mikrocontrollern vertraut zu machen, sowie für erfahrene Entwickler, die sich schnell mit den Fähigkeiten des RP2040 vertraut machen möchten.

Programmiersprachen und Frameworks

Der RP2040 unterstützt mehrere Programmiersprachen und Frameworks und bietet Entwicklern somit Flexibilität bei der Auswahl der für ihre Projekte am besten geeigneten Option.

MicroPython: MicroPython ist eine ausgezeichnete Wahl, insbesondere für Anfänger oder diejenigen, die ihre Ideen schnell prototypisieren möchten. Es handelt sich um eine schlanke und effiziente Implementierung der Programmiersprache Python 3, die speziell für Mikrocontroller entwickelt wurde. Mit MicroPython können Sie Code in einer hochentwickelten, leicht verständlichen Syntax schreiben. So lässt sich beispielsweise eine an einen GPIO-Pin des RP2040 angeschlossene LED mit nur wenigen Zeilen Code steuern:
				
					from machine import Pin
import time

led = Pin(25, Pin.OUT)
while True:
    led.value(1)
    time.sleep(1)
    led.value(0)
    time.sleep(1)

				
			
Diese Einfachheit ermöglicht es Entwicklern, sich auf die Funktionalität ihres Projekts zu konzentrieren, anstatt sich in Details der Low-Level-Programmierung zu verlieren. MicroPython verfügt außerdem über eine Vielzahl von Bibliotheken, die für die Anbindung verschiedener Hardwarekomponenten wie Sensoren, Kommunikationsmodule und Displays verwendet werden können.

C/C++: Für diejenigen, die mehr Kontrolle über die Hardware und eine bessere Leistung benötigen, ist C/C++ eine gute Option. Der RP2040 verfügt über ein offizielles C/C++ SDK (Software Development Kit), das einen umfassenden Satz an Bibliotheken und Tools für die Entwicklung von Anwendungen bereitstellt. Das SDK enthält Treiber für alle Hardware-Peripheriegeräte des RP2040, wie z. B. die GPIO-, PIO-, UART-, SPI- und I2C-Schnittstellen. Mit C/C++ können Entwickler hochoptimierten Code schreiben, der die Dual-Core-Architektur des RP2040 voll ausnutzt. Bei der Implementierung eines Hochgeschwindigkeits-Datenerfassungssystems kann C/C++ beispielsweise verwendet werden, um Code zu schreiben, der Daten von mehreren an die GPIO-Pins des RP2040 angeschlossenen Sensoren effizient liest und in Echtzeit verarbeitet.

Werkzeuge und IDEs

Für die Entwicklung von Anwendungen für den RP2040 stehen mehrere Tools und integrierte Entwicklungsumgebungen (IDEs) zur Verfügung.

Thonny

Thonny ist eine beliebte Wahl, insbesondere für die MicroPython-Entwicklung. Es verfügt über eine benutzerfreundliche Oberfläche, die auch für Anfänger leicht zu bedienen ist. Thonny bietet eine integrierte Python-Shell, mit der Entwickler ihren Code interaktiv testen können. Sie können Python-Befehle eingeben und die Ergebnisse sofort sehen, was es zu einem großartigen Werkzeug für die Fehlersuche und das Erkunden der Fähigkeiten des RP2040 macht. Um Thonny mit dem RP2040 zu verwenden, müssen Sie zunächst den Pico über USB an Ihren Computer anschließen. Anschließend können Sie in Thonny den entsprechenden Python-Interpreter auswählen (MicroPython für RP2040). Nach der Konfiguration können Sie Ihren MicroPython-Code direkt in Thonny schreiben, ausführen und debuggen.

VS Code

Visual Studio Code ist ein leistungsstarker, plattformübergreifender Code-Editor, der sich bei Entwicklern großer Beliebtheit erfreut. Er verfügt über eine Vielzahl von Erweiterungen und eignet sich daher für die RP2040-Entwicklung. Für die C/C++-Entwicklung bietet die Erweiterung „C/C++” von Microsoft Funktionen wie Code-Hervorhebung, Intellisense (Code-Autovervollständigung) und Debugging-Unterstützung. Für MicroPython bietet die Erweiterung „MicroPython” ähnliche Funktionen. Um VS Code für die RP2040-Entwicklung einzurichten, müssen Sie die entsprechenden Erweiterungen installieren und die Build- und Debugging-Einstellungen entsprechend Ihren Projektanforderungen konfigurieren. Wenn Sie beispielsweise an einem C/C++-Projekt arbeiten, müssen Sie den Pico SDK-Pfad einrichten und den Debugger für die Verwendung mit dem RP2040 konfigurieren.

RP2040 vs. RP2350 Chips

Der RP2040 und der RP2350 sind von Raspberry Pi entwickelte Mikrocontroller. Der RP2040 war ein frühes Modell, während der RP2350 ein weiterentwickelter Nachfolger mit verbesserten Funktionen ist. Hier ist ein Vergleich zwischen den beiden:

A side by side comparison image of RP2040 and RP2350 microchips labeled with their respective names
RP2040 and RP2350 Microchips Comparison
FeatureRP2040RP2350
Core ArchitectureDual Arm Cortex-M0+Dual Arm Cortex-M33 or Dual RISC-V Hazard3
Clock Speed133MHz150MHz
On-chip SRAM264KB520KB
Security FeaturesBasic security featuresArm TrustZone, Signed Boot, SHA-256, TRNG, Fault Detectors
Peripheral Interfaces2×UART, 2×SPI, 2×I2C, ADC, PWM, USB 1.1Enhanced peripherals, additional PIO state machines, more GPIO pins, higher power efficiency
PackagingSingle 7×7mm QFN56 option7×7mm QFN60 (RP2350A) with 30 GPIOs or 10×10mm QFN80 (RP2350B) with 48 GPIOs; both with 2MB stacked QSPI flash (RP2354A and RP2354B)

Fazit

Zusammenfassend lässt sich sagen, dass der RP2040 ein bemerkenswerter Mikrocontroller ist, der die Welt der eingebetteten Systeme und der Elektronikentwicklung maßgeblich geprägt hat. Wir freuen uns über Ihre Meinungen und Erfahrungen!

Teilen auf:

Nach oben scrollen

Instant Quote