Die Raspberry Pi Foundation stellt mit dem Raspberry Pi Pico ihr erstes kompaktes Mikrocontroller-Board auf Basis des eigens entwickelten Chips RP2040 vor. Der Raspberry Pi Pico kostet 4 Dollar und richtet sich an Anwendungen, bei denen der klassische Raspberry Pi zu überdimensioniert und energiehungrig ist. Damit steigt die Raspberry Pi Foundation in den Mikrocontroller-Markt ein und macht Arduino und anderen Herstellern Konkurrenz.
Raspberry Pi Pico: Kompaktes Mikrocontroller-Board
Der Raspberry Pi Pico ist das erste Mikrocontroller-Board der Raspberry Pi Foundation und setzt auf den eigens entwickelten Chip namens RP2040. Der Raspberry Pi Pico ist mit Abmessungen von 5,1cm mal 2,1cm ähnlich dem Formfaktor des Arduino Nano. Die Stromversorgung, als auch die Programmierung des Mikrocontrollers RP2040 erfolgt über den USB1.1 Port des Pico. Weiterhin unterstützt der RP2040 die USB-Host Funktionalität, sodass der USB-Port als Gerät- bzw. Slave, aber auch als Host genutzt werden kann.
Der Spannungswandler zur Versorgung des RP2040 unterstützt einen Eingangsspannungsbereich von 1,8V bis 5,5V. Damit kann der Raspberry Pi Pico neben dem USB-Port von einer Vielzahl an Spannungsquellen versorgt werden, beispielsweise aus einem Lithium-Akku (eine Zelle) oder aus zwei oder drei Batterien in Reihe vom Typ AA.
Der Raspberry Pi Pico kann als Low-Cost Breakout-Board für den Raspberry Pi Mikrocontroller RP2040 angesehen werden. Das Board verfügt zudem über einen Push-Taster. Mit diesem kann einerseits der USB-Massenspeicher während des Boot aktiviert werden, andererseits kann der Push-Taster als klassischer GPIO-Eingang genutzt werden. Weiterhin bietet der Raspberry Pi Pico eine on Board LED, welche mit einem GPIO Pin geschalten werden kann.
Der Raspberry Pi Pico kann wahlweise mit einem GPIO-Header bestückt werden (Pinleiste) oder direkt auf eine Carrier-Platine gelötet werden. Die Pads haben einen Pitch (Padabstand) von 2,54mm bzw. 0,1″.
RP2040 Mikrocontroller
Der Raspberry Pi eigens entwickelte Chip RP2040 ist ein 32 Bit Mikrocontroller und basiert auf dem Dual Core ARM Cortex M0+ CPU mit 133 MHz. Weiterhin verfügt der RP2040 über 264KB SRAM und 2MB Flash-Speicher. Über das dedizierte QSPI-Interface (Quad SPI) können zudem bis zu 16MB externer Flash-Speicher adressiert werden. Ein integrierter DMA Controller (Direct Memory Access Controller) unterstützt den Anwender bei der Speicherverwaltung.
In Sachen Ein- und Ausgänge bietet der RP2040 insgesamt 30 multifunktionale GPIO Pins. Neben der normalen Nutzung als digitale Ein- und Ausgänge unterstützen die GPIO-Pins folgende Hardware-Funktionen:
- 4 Analogeingänge
- 2 x UART
- 2 x SPI Controller
- 2 x I2C Controller
- 16 x Hardware-PWM
Weiterhin verfügt der Raspberry Pi RP2040 Mikrocontroller über einen USB1.1 Controller und PHY. Mit diesem ist es möglich, den RP2040 hinsichtlich USB als Host oder Device zu nutzen. Der USB Massenspeicher Boot-Modus mit integrierter UF2 Unterstützung erlaubt zudem die Programmierung des Chips per Drag&Drop, indem die Firmware nach dem Vorbild eines USB-Sticks auf den Schaltkreis kopiert wird.
Der Chip RP2040 teilt darüber hinaus den RAM in 6 von einander unabhängige Blöcke auf und bindet diese einzeln an den internen CPU-Bus an. Dies ermöglicht einen echten Paralellbetrieb von Speicherzugriffen via DMA Controller, sowie den beiden Kernen des ARM Cortex M0+ CPUs. Die Floating-Point-Operationen basieren auf der Qfplib und sind um einiges schneller als vergleichbare Operationen des GCC Compilers. Acht programmeirbare I/O (PIO) Zustandsautomaten ermöglichen die Anbindung von individuellen Komponenten bzw. Schaltkreisen. Der Chip selbst hat zudem einen Temperatursensor integriert und ist in einem 7 x 7mm QFN-56 Gehäuse untergebracht.
Raspberry Pi Pico: Programmierung mit MicroPython oder C/C++
Die Programmierung des RP2040 auf dem Raspberry Pi Pico kann mit MicroPython oder C/C++ erfolgen. MicroPython ist hierbei eine vollständige Implementierung der Programmiersprache Python 3, welche auf embedded Hardware wie dem Raspberry Pi Pico ausgeführt werden kann. MicroPython bietet hierbei Module, die den Zugriff auf Chip-spezifische Hardware, wie den RP2040, erlauben. Dadurch kann mit MicroPython auf Hochsprachenebene der RP2040 als embedded Hardware programmiert werden. MicroPython ist aktuell in der Thonny IDE integriert.
Für die Programmierung des Raspberry Pi Pico stellt die Raspberry Pi Foundation eine offizielle C SDK bereit. Diese kann über die Befehlszeile oder aus integrierten Entwicklungsumgebungen wie Visual Studio Code oder Eclipse verwendet werden.
Raspberry Pi Pico: Einplatinencomputer vs. Mikrocontroller
Die Raspberry Pi Foundation bietet mit dem Raspberry Pi Einplatinencomputer bisher einen kompakten und leistungsstarken Minicomputer, welcher in einer Vielzahl von Anwendungen zum Einsatz kommt. In Sachen Konnektivität, Rechenleistung, sowie einem Linux als Basissystem, bildet der Raspberry Pi eine attraktive Recheneinheit, sowohl für private Anwender, aber auch im industriellen Umfeld. Dennoch exisitieren einige Einsatzgebiete, die der Raspberry Pi nicht bedienen kann:
Der Raspberry Pi Einplatinencomputer unterstützt ohne zusätzliche externe Hardware keine analogen Ein- und Ausgänge für Messschaltungen jeglicher Art. Hinzu kommt, dass ein Allzweckbetriebssystem wie Linux es zwar erlaubt diverse Software auszuführen, jedoch ist solch ein Betriebssystem nicht geeignet für schnelle und konstante I/O-Operationen mit geringer Latenz. Demgegenüber arbeiten Mikrocontroller hardwarenah auf unterster Ebene und sind für I/O-Operationen dediziert.
Ein weitere Aspekt ist die Anzahl von integrierten Hardware-Funktionalitäten. Moderne Mikrocontroller wie der Raspberry Pi RP2040 unterstützen mehrere dedizierte UART, SPI und SPI Interfaces auf Hardwarebasis. Aus diesem Grund wird der klassische Raspberry Pi Einplatinencomputer (bspw. Compute Module) im industriellen Umfeld immer mit einem Mikrocontroller gepaart.
Ein weiterer Faktor bildet der Energiebedarf. Ein Raspberry Pi Zero verbraucht hinsichtlich der Leistungsaufnahme mindestens 100mW. Dies ist für ernergiesparende Anwendungen (low energy) nicht tragbar. Ein Mikrocontroller bewegt sich hinsichtlich der Leistungsaufnahme je nach Anwendung deutlich unter 1mW und kann zudem in einen Schlafmodus versetzt werden.
Mit dem Raspberry Pi Pico und dem Raspberry Pi RP2040 ergänzt die Raspberry Pi Foundation ihr Portfolio mit einer eigenen Mikrocontroller-Klasse, die hardwarenahe Projekt gezielter abbilden lässt.
RP2040 Mikrocontroller auf anderen Boards
Neben dem Einsatz des RP2040 Mikrocontroller auf dem Raspberry Pi Pico wollen auch andere Hersteller den Chip auf ihren Boards einsetzen. Der Arduino Nano soll beispielsweise auf Basis des RP2040 in Verbindung mit WLAN und Bluetooth umgesetzt werden.
Weiterhin wird der Hersteller Adafruit mit den Board Feather RP 2040 und Itsy Bitsy RP 2040 zwei Boards auf Basis des Raspberry Pi RP2040 realisieren. Der Hersteller Sparkfun nutzt den Raspberry Pi Chip gleichermaßen auf drei Boards.
Hallo Serviceteam! ich versuche den Raspi mit dem Programm LIRC über infrarot fernzusteuern.In ihrer Anleitung zur IR-Fernsteuerung des Raspi funktioniert die Anweisung”Lirc anpassen(Raspian)”so nicht ,weil es die Datei “hardware.conf” beim LIRC-Programm nicht mehr gibt.Ich versuche ihre Textänderungsanweisungen in der Datei “lircd.conf” zu schreiben.Immerhin startet und stoppt so der Lirc-Daemon.
Herzliche Grüße
Hans Schulz