Raspberry Pi Pico Arduino-Kern, für alle RP2040- und RP2350-Boards
Dies ist eine Portierung von Arduino auf den RP2040 (Raspberry Pi Pico-Prozessor) und RP2350 (Raspberry Pi Pico 2-Prozessor). Es verwendet das nackte Raspberry Pi Pico SDK und eine benutzerdefinierte GCC 14.2/Newlib 4.3-Toolchain und unterstützt ARM- und RISC-V-Kerne.
Detailliertere Nutzungsinformationen finden Sie unter https://arduino-pico.readthedocs.io/en/latest/ zusammen mit den Beispielen.
Weitere Informationen zum Senden von Pull-Anfragen und zum Portieren von Bibliotheken oder Skizzen auf diesen Kern finden Sie im Contributing Guide.
Die RP2040 PIO State Machines (SMs) dienen zur jitterfreien Generierung von:
Bitte verwenden Sie nicht die Windows Store-Version der eigentlichen Arduino-Anwendung, da diese Probleme beim Erkennen angeschlossener Pico-Boards hat. Verwenden Sie die „Windows ZIP“-Datei oder die einfache ausführbare „Windows“-Datei (EXE), die Sie direkt von https://arduino.cc herunterladen können. und erlauben Sie ihm, alle vorgeschlagenen Gerätetreiber zu installieren. Andernfalls wird das Pico-Board möglicherweise nicht erkannt. Wenn Sie außerdem die Arduino-Betaversion 2.0 ausprobieren, installieren Sie bitte vorher die Version 1.8, um sicherzustellen, dass die erforderlichen Gerätetreiber vorhanden sind. (Weitere Einzelheiten finden Sie unter Nr. 20.)
Die Installation von Arduino mit Flatpak (häufig von „App Stores“ in verschiedenen Linux-Distributionen verwendet) führt dazu, dass der Zugriff auf den Host eingeschränkt ist. Dies kann dazu führen, dass Uploads mit Fehlermeldungen wie der folgenden fehlschlagen:
Scanning for RP2040 devices
...
No drive to deploy.
Wenn dies auftritt, müssen Sie Arduino entweder auf andere Weise installieren oder die Flatpak-Sandboxing-Funktion mit dem folgenden Befehl überschreiben und dann Arduino neu starten.
flatpak override --user --filesystem=host:ro cc.arduino.IDE2
Öffnen Sie die Arduino IDE und gehen Sie zu Datei->Einstellungen.
Geben Sie im daraufhin angezeigten Dialogfeld die folgende URL in das Feld „Zusätzliche Boards-Manager-URLs“ ein:
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
Klicken Sie auf OK, um den Dialog zu schließen.
Gehen Sie in der IDE zu Tools->Boards->Board-Manager
Geben Sie „pico“ in das Suchfeld ein und wählen Sie „Hinzufügen“:
Windows-Benutzer: Bevor Sie über git
unter Windows installieren, lesen und befolgen Sie bitte die Anweisungen in diesem Link. Wenn lange Win32-Pfade nicht aktiviert sind und git
nicht für deren Verwendung konfiguriert ist, kann es beim Versuch, die Submodule zu klonen, zu Fehlern kommen.
Zur Installation über GIT (für die neuesten und besten Versionen):
mkdir -p ~/Arduino/hardware/pico
git clone https://github.com/earlephilhower/arduino-pico.git ~/Arduino/hardware/pico/rp2040
cd ~/Arduino/hardware/pico/rp2040
git submodule update --init
cd pico-sdk
git submodule update --init
cd ../tools
python3 ./get.py
Um Ihre erste Skizze hochzuladen, müssen Sie die BOOTSEL-Taste gedrückt halten, während Sie den Pico an Ihren Computer anschließen. Klicken Sie dann auf die Schaltfläche „Hochladen“ und die Skizze sollte übertragen werden und mit der Ausführung beginnen.
Nach dem ersten Upload sollte dies nicht mehr notwendig sein, da der arduino-pico
Kern über Auto-Reset-Unterstützung verfügt. Wählen Sie einmal den entsprechenden seriellen Port aus, der im Menü „Arduino Tools->Port->Serial Port“ angezeigt wird (diese Einstellung bleibt erhalten und muss bei mehreren Uploads nicht geändert werden). Mit dieser Auswahl kann das Auto-Reset-Tool das richtige Gerät zum Zurücksetzen identifizieren. Sie klicken auf die Schaltfläche „Hochladen“ und Ihre Skizze sollte hochgeladen und ausgeführt werden.
In manchen Fällen kommt es beim Pico zu einem Hard-Hang und sein USB-Anschluss reagiert nicht auf die Auto-Reset-Anfrage. Sollte dies passieren, folgen Sie einfach dem anfänglichen Verfahren und halten Sie die BOOTSEL-Taste gedrückt, während Sie den Pico anschließen, um den ROM-Bootloader aufzurufen.
Mit dem integrierten Flash-Dateisystem für den Pico, LittleFS, können Sie ein Dateisystem-Image aus dem Skizzenverzeichnis hochladen, damit Ihre Skizze es verwenden kann. Laden Sie das benötigte Plugin herunter von
Befolgen Sie zur Installation die Anweisungen in
Ausführliche Informationen zur Verwendung finden Sie in der ESP8266-Repo-Dokumentation (SPIFFS-bezogene Hinweise ignorieren), die unter verfügbar ist
Wenn Sie eine Raspberry Pi Picoprobe gebaut haben, können Sie OpenOCD zum Verwalten Ihrer Skizzen-Uploads und zum Debuggen mit GDB verwenden.
Unter Windows sollte ein lokaler Admin-Benutzer automatisch auf den Picoprobe-Port zugreifen können, unter Linux muss udev
jedoch über das Gerät informiert werden und normalen Benutzern den Zugriff ermöglichen.
So richten Sie den Zugriff auf Picoprobes auf Benutzerebene unter Ubuntu (und anderen Betriebssystemen, die udev
verwenden) ein:
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="0004", MODE="660", GROUP-"plugdev"' | sudo tee -a /etc/udev/rules.d/98-PicoProbe.rules
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="000a", MODE="660", GROUP="plugdev"' | sudo tee -a /etc/udev/rules.d/98-PicoProbe.rules
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="000f", MODE="660", GROUP="plugdev"' | sudo tee -a /etc/udev/rules.d/98-PicoProbe.rules
sudo udevadm control --reload
sudo udevadm trigger -w -s usb
Die erste Zeile erstellt eine Gerätedatei in /dev
die dem USB-Anbieter und der Produkt-ID der Picoprobe entspricht, und aktiviert globale Lese- und Schreibberechtigungen. Die zweite Zeile veranlasst udev
, diese neue Regel zu laden. Die dritte Zeile fordert den Kernel auf, „Gerätewechsel“-Ereignisse zu generieren, die dazu führen, dass unsere neue udev
-Regel ausgeführt wird.
Wenn die Gerätedatei aus irgendeinem Grund nicht angezeigt wird, trennen Sie die USB-Verbindung manuell, schließen Sie sie wieder an und überprüfen Sie sie erneut. Die Ausgabe von dmesg
kann nützliche Diagnosen liefern, wenn die Gerätedatei nicht vorhanden ist.
Sobald die Picoprobe-Berechtigungen ordnungsgemäß eingerichtet sind, wählen Sie im Menü „Extras“ die Karte „Raspberry Pi Pico (Picoprobe)“ aus und laden Sie sie wie gewohnt hoch.
Zu den installierten Tools gehören eine Version von OpenOCD (im Verzeichnis pqt-openocd) und GDB (im Verzeichnis pqt-gcc). Diese können verwendet werden, um GDB in einem interaktiven Fenster auszuführen, wie in den Pico Getting Started-Handbüchern der Raspberry Pi Foundation dokumentiert. Verwenden Sie die Befehlszeile ./system/openocd/bin/openocd -f ./lib/rp2040/picoprobe_cmsis_dap.tcl
oder ./system/openocd/bin/openocd -f ./lib/rp2350/picoprobe_cmsis_dap.tcl
aus dem git
Installationsverzeichnis .
-Earle F. Philhower, III
[email protected]