Adafruit QT Py RP2040 Entwicklungsboard, 4900
Adafruit QT Py RP2040 Entwicklungsboard, 4900
Das kleine Dev-Board kommt mit dem beliebten RP2040 Mikroprozessor, der auch im Raspberry Pi Pico Board Verwendung findet.
Im Gegensatz zum Raspberry Pi Pico verfügt das QT Py Board über STEMMA QT, einem verkettbaren I2C-Anschluss, welcher mit allen STEMMA QT-Sensoren und Zubehörteilen verwendet werden kann.
OLEDs, Trägheitsmessgeräte und Sensoren - alles Plug-and-Play dank des innovativen verkettbaren Designs: SparkFun Qwicc-kompatible STEMMA QT-Stecker für den I2C-Bus, so dass du nicht einmal löten musst! Stecke einfach ein kompatibles Kabel ein, verbinde es mit der MCU deiner Wahl und schon kannst du eine Software laden und z.B. Licht messen.
Verwende beliebige SparkFun Qwiic-Boards!
Pinkompatibel zum Seeed Xiao. Durch die wabenförmigen Pads kannst du sie flach auf eine Platine löten. Zusätzlich wurde zum QT Anschluss ein RGB NeoPixel (mit steuerbarem Power-Pin für Ultra-Low-Power-Nutzung) und ein Reset-Knopf (ideal für den Neustart deines Programms oder die Eingabe des Bootloaders) ergänzt. Während der RP2040 über jede Menge RAM verfügt (264 KB), kommt er jedoch ohne integrierten Flashspeicher. Dieser wird extern per QSPI bereitgestellt und umfasst 8 MB. Bei Verwendung von Python stehen etwa 7 MB zur freien Verwendung für Code und Dateien zur Verfügung.
- Größe, Formfaktor und Pinbelegung entsprechen dem Seeed Xiao
- USB Typ C Anschluss
- RP2040 32-Bit Cortex M0+, Dual-Core mit 125 MHz Taktung
- 264 KB RAM
- 8 MB SPI Flash, kein EEPROM
- Natives USB, welches von jedem Betriebssystem (OS) unterstützt wird - kann in Arduino oder CircuitPython als serielle USB-Konsole, MIDI, Keyboard / Mouse HID und sogar als kleines Festplattenlaufwerk zum Speichern von Python-Skripten genutzt werden
- Kann mit MicroPython oder CircuitPython verwendet werden
- Eingebaute RGB NeoPixel LED
- 13 GPIO-Pins (11 Pins + 2 QT Pads):
- 4x 12-Bit A/D-Wandler (ADC)
- 2x I2C-Ports (1x über den QT-Anschluss, 1x über Pins)
- SPI und UART
- PWM-Ausgänge an allen I/O-Pins
- 3,3-V-Regler mit 600-mA-Spitzenleistung
- 12 MHz Oszillator
- Reset-Schalter zum Starten des Projektcodes oder zum Aufrufen des Bootloader-Modus
- Wirklich sehr, sehr klein
Zum aktuellen Zeitpunkt gibt es keine Arduino-Unterstützung für den Chip auf diesem Board. Es gibt großartige C/C++-Unterstützung, einen offiziellen MicroPython-Port und einen CircuitPython-Port!
Im RP2040 befindet sich ein USB UF2-Bootloader mit permanentem ROM. Das heißt, wenn du eine neue Firmware programmieren möchtest, kannst du die BOOT-Taste gedrückt halten, während du das Board an den USB-Port deines Computers anschließt. Das Board wird anschließend als USB-Laufwerk angezeigt, auf das du die Firmware ziehen kannst. Falls du bereits mit CircuitPython-Boards gearbeitet hast, wird dir der Ablauf vertraut vorkommen. Beachte bitte, dass du nicht auf RESET doppelklickst, sondern BOOTSEL während des Startvorgangs gedrückt hältst, um den Bootloader aufzurufen!
Der RP2040 ist ein leistungsstarker Chip mit der Taktrate unseres M4 (SAMD51) und zwei Kernen, die unserem M0 (SAMD21) entsprechen. Da es sich um einen M0-Chip handelt, gibt es keine Gleitkommaeinheit oder DSP-Hardwareunterstützung. Wenn du also etwas mit Gleitkomma-Mathematik berechnen möchtest, wird dies in Software durchgeführt und ist daher nicht so schnell wie bei einem M4. Für viele andere Rechenaufgaben ähnelt die Geschwindigkeit der des M4!
Für Peripheriegeräte gibt es zwei I2C-Controller, zwei SPI-Controller und zwei UARTs, die über den GPIO gemultiplext werden. Überprüfe anhand der Pinbelegung, welche Pins auf welche eingestellt werden können. Es gibt 16 PWM-Kanäle, jeder Pin hat einen Kanal, auf den er eingestellt werden kann (ebenso auf der Pinbelegung).
Du wirst feststellen, dass es kein I2S-Port, kein SDIO und keinen Kameraanschluss gibt. Woran liegt das? Anstatt eine spezielle Hardwareunterstützung für solche seriellen Peripheriegeräte zu haben, wird der RP2040 mit dem PIO-Zustandsmaschinensystem geliefert, das eine einzigartige und leistungsstarke Möglichkeit darstellt, benutzerdefinierte Hardwarelogik- und Datenverarbeitungsblöcke zu erstellen, die eigenständig laufen ohne die CPU zu blockieren. Zum Beispiel NeoPixel - oft haben wir das zeitspezifische Protokoll für diese LEDs per Software emuliert. Für den RP2040 verwenden wir stattdessen ein PIO-Objekt, das den Datenpuffer einliest und den richtigen Bitstrom mit perfekter Genauigkeit austaktet. Gleiches gilt für I2S-Audioeingang oder -ausgang, LED-Matrixanzeigen, 8-Bit- oder SPI-basierte TFTs und sogar VGA! In MicroPython und CircuitPython lassen sich PIO-Steuerbefehle erstellen, um das jeweilige Gerät anzusteuern und zur Laufzeit zu laden. Unterstützt werden bis zu 2 PIO-Geräte mit jeweils 4 Zustandsautomaten.