Rust auf dem Raspberry Pi Pico · Teil 15TutorialFortgeschritten

Rust

Rust Pico 15: SPI und externe Module

SPI von I²C unterscheiden. Embedded Rust verständlich erklärt, mit Praxisaufgabe und Musterlösung.

Kapitel: Schnittstellen

Veröffentlicht am

Teil 15: SPI und externe Module

Lernziel: SPI von I²C unterscheiden.

Voraussetzungen: Der Rust-PC-Grundlagenkurs bzw. Grundkenntnisse in Rust; außerdem die vorangegangenen Pico-Lektionen. Zielboard: Pico 2 / Pico 2 W (ARM); Hinweise für RP2040 in der Kursübersicht.

Worum geht es?

SPI benötigt typischerweise SCK, MOSI, MISO sowie ein Chip-Select pro Gerät. Es kann hohe Datenraten bieten und kommt bei Displays, Flash und Speicherkarten zum Einsatz. Beginne mit einem Modul, dessen Spannungsversorgung und Pinbelegung dokumentiert sind.

Schritt für Schritt

SPI-Signale:
SCK  : Takt vom Controller
MOSI : Controller -> Modul
MISO : Modul -> Controller
CS   : Auswahl des Moduls

Einordnung: Die konkrete Rust-API ist vom gewählten SPI-Modul abhängig.

Hintergrund und häufige Fehler

  • Board prüfen: Pico/Pico W (RP2040) und Pico 2/Pico 2 W (RP2350) brauchen unterschiedliche Compilerziele und Boardkonfigurationen.
  • Hardware zuerst: Vor dem Flashen Pinbelegung, gemeinsame Masse und 3,3-V-Pegel prüfen.
  • Versionsstand: Übernehme die passenden Embassy-Beispiele und Abhängigkeiten aus demselben Repository-Stand; APIs ändern sich zwischen Releases.
  • Schrittweise testen: Erst ein kleines funktionsfähiges Beispiel, danach jeweils genau eine Änderung vornehmen.

Selbst ausprobieren

Nenne zwei Unterschiede zwischen SPI und I²C.

Musterlösung anzeigen

SPI nutzt meist mehr Signalleitungen und separate Chip-Selects, während I²C Busadressen und SDA/SCL verwendet.

Dokumentation für deine Versuche

Notiere verwendetes Board, Verdrahtung, Git-Commit oder Bibliotheksversion, Build-Befehl, Ergebnis und aufgetretene Fehlermeldungen. Halte dazu ein Foto oder einen Screenshot fest, der später in den Website-Beitrag übernommen werden kann.

Weiterführende Informationen


← Teil 14 · Teil 16 →