Was für ein süßes Kerlchen! Oder ist es... ein QT Py? Dieses winzige Entwicklungsboard ist mit einem unserer neuen Lieblingschips ausgestattet, dem RP2040. Berühmt geworden ist er durch die neuen Raspberry Pi Pico und Adafruits Feather RP2040 und ItsyBitsy RP2040, aber was, wenn wir etwas wirklich Kleines wollen?
Ein neuer Chip bedeutet einen neuen QT Py, und der Raspberry Pi RP2040 ist da keine Ausnahme. Als Adafruit diesen Chip sah, dachten sie: "Dieser Chip wird fantastisch sein, wenn wir ihn mit dem QT Py Treatment behandeln", und das haben sie auch getan! Dieser QT Py verfügt über den RP2040 und alle Annehmlichkeiten, die Sie vom originalen QT Py kennen und lieben
PLUG-AND-PLAY STEMMA QT
Der Star des QT Py ist Adafruits Lieblingsstecker - der STEMMA QT, ein verkettbarer I2C-Anschluss, der mit allen unseren STEMMA QT-Sensoren und -Zubehörteilen verwendet werden kann. Mit diesem Anschluss brauchen Sie nicht zu löten, um loszulegen.
Was kann man in den QT-Anschluss stecken? Wie wäre es mit OLEDs? Trägheitsmessgeräte! Sensoren in Hülle und Fülle. Alles Plug-and-Play dank des innovativen kettbaren Designs: SparkFun Qwiic-kompatible STEMMA QT-Stecker für den I2C-Bus, so dass Sie nicht einmal löten müssen. Schließen Sie einfach ein kompatibles Kabel an, verbinden Sie es mit der MCU Ihrer Wahl, und schon können Sie eine Software laden und Lichtmessungen durchführen.
SOFTWARE UNTERSTÜTZUNG
Zum Zeitpunkt der Markteinführung gibt es keine Arduino Kernunterstützung für den Chip auf diesem Board. Es gibt eine großartige C/C++-Unterstützung, eine offizielle MicroPython-Portierung und eine CircuitPython-Portierung! Adafruit empfiehlt natürlich CircuitPython, weil wir denken, dass es der einfachste Weg ist, um anzufangen, und es unterstützt die meisten ihrer Treiber, Displays, Sensoren und mehr, die von Anfang an unterstützt werden, so dass Sie mit ihren CircuitPython projects und Tutorials folgen können.
QT PY RP2040 SPEZIFIKATIONEN
Pinout und Form sind kompatibel mit Seeed Xiao, mit wabenförmigen Pads, so dass Sie es auf eine Platine mit einem Ausschnitt löten können, um den unteren Komponenten etwas Spielraum zu geben. Zusätzlich zum QT-Anschluss hat Adafruit auch einen RGB-NeoPixel (mit einem steuerbaren Power-Pin, um einen extrem niedrigen Stromverbrauch zu ermöglichen) und sowohl Boot-Modus- als auch Reset-Tasten (ideal für den Neustart Ihres Programms oder den Zugriff auf den Bootloader) hinzugefügt. Dieser QT Py wird mit losen 0,1"-Leitungen geliefert, die Sie für die Verwendung auf dem Breadboard einlöten können.
Während der RP2040 über viel Onboard-RAM (264KB) verfügt, hat er keinen eingebauten FLASH-Speicher. Stattdessen wird dies durch den externen QSPI-Flash-Chip gewährleistet. Auf diesem Board befinden sich 8 MB, die sich das laufende Programm und der von MicroPython oder CircuitPython verwendete Dateispeicher teilen. Bei der Verwendung von C/C++ steht Ihnen der gesamte Flash-Speicher zur Verfügung, bei der Verwendung von Python verbleiben etwa 7 MB für Code, Dateien, Bilder, Schriftarten usw.
Gleiche Größe, Formfaktor und Pin-Out wie der SAMD-basierte QT Py
USB-Typ-C-Anschluss
RP2040 32-Bit Cortex M0+ Dual-Core mit ~125 MHz bei 3,3 V Logik und Leistung
264 KB RAM
8 MB SPI FLASH-Chip zum Speichern von Dateien und CircuitPython/MicroPython-Code. Kein EEPROM
Natives USB wird von jedem Betriebssystem unterstützt - kann als serielle USB-Konsole, MIDI, Tastatur/Maus-HID und sogar als kleines Laufwerk zum Speichern von Python-Skripten verwendet werden.
Kann mit MicroPython oder CircuitPython verwendet werden
Eingebaute RGB-NeoPixel-LED
13 GPIO-Pins (11 Breakout-Pads und zwei QT-Pads):
Vier 12-Bit-ADCs (einer mehr als beim Pico)
Zwei I2C-Ports (einer auf dem QT-Anschluss, einer auf den Breakout-Pads)
SPI- und UART-Peripherie, in Standard-QT-Py-Positionen,
PWM-Ausgänge an jedem IO-Pin - für Servos, LEDs usw.
Es gibt 6 GPIOs in aufeinanderfolgender Reihenfolge für PIO-Kompatibilität
3.3-V-Regler mit 600-mA-Spitzenleistung
12-MHz-Quarz
Reset-Taster und Bootloader-Auswahltaster für schnelle Neustarts (kein Herausziehen und Wiedereinstecken, um den Code neu zu starten)
Wirklich sehr klein
ÜBER DEN RP2040
Im Inneren des RP2040 befindet sich ein "permanenter ROM"-USB-UF2-Bootloader. Das heißt, wenn Sie eine neue Firmware programmieren wollen, können Sie die BOOT-Taste gedrückt halten, während Sie das Gerät an den USB-Anschluss anschließen (oder den RUN/Reset-Pin auf Masse ziehen), und es erscheint als USB-Laufwerk, auf das Sie die Firmware ziehen können. Diejenigen, die Adafruit Produkte verwenden, werden dies sehr vertraut finden - sie verwenden diese Technik auf allen ihren nativen USB-Boards. Beachten Sie, dass Sie nicht doppelt auf Reset klicken, sondern BOOTSEL während des Bootens gedrückt halten, um den Bootloader zu starten!
Der RP2040 ist ein leistungsstarker Chip, der die Taktfrequenz des M4 (SAMD51) und zwei Kerne hat, die dem M0 (SAMD21) entsprechen. Da es sich um einen M0-Chip handelt, verfügt er nicht über eine Fließkommaeinheit oder DSP-Hardwareunterstützung - wenn Sie also etwas mit umfangreichen Fließkommaberechnungen machen, wird dies in Software erledigt und ist daher nicht so schnell wie ein M4. Bei vielen anderen Rechenaufgaben erreichen Sie nahezu M4-Geschwindigkeit!
Für Peripheriegeräte gibt es zwei I2C-Controller, zwei SPI-Controller und zwei UARTs, die über die GPIO gemultiplext sind - prüfen Sie die Pinbelegung, um zu sehen, welche Pins auf was eingestellt werden können. Es gibt 16 PWM-Kanäle, jeder Pin hat einen Kanal, auf den er eingestellt werden kann (dito auf dem Pinout).
Sie werden feststellen, dass es kein I2S-Peripheriegerät, kein SDIO und keine Kamera gibt, was ist da los? Nun, anstelle einer speziellen Hardwareunterstützung für serielle datenähnliche Peripheriegeräte wie diese, verfügt der RP2040 über das PIO-State-Machine-System, das eine einzigartige und leistungsstarke Möglichkeit darstellt, benutzerdefinierte Hardwarelogik und Datenverarbeitungsblöcke zu erstellen, die eigenständig laufen, ohne eine CPU zu beanspruchen. Zum Beispiel, NeoPixels - oft Adafruit bitbang das Timing-spezifische Protokoll für diese LEDs. Für den RP2040 verwenden sie stattdessen ein PIO-Objekt, das den Datenpuffer einliest und den richtigen Bitstrom mit perfekter Genauigkeit ausgibt. Dasselbe gilt für I2S-Audioeingänge und -ausgänge, LED-Matrix-Displays, 8-Bit- oder SPI-basierte TFTs und sogar VGA! In MicroPython und CircuitPython können Sie PIO-Steuerbefehle erstellen, um das Peripheriegerät zu skripten und es zur Laufzeit zu laden. Es gibt 2 PIO-Peripheriegeräte mit jeweils 4 Zustandsautomaten.
TECHNISCHE DETAILS
RP2040 Chip-Merkmale
Dual ARM Cortex-M0+ @ 133MHz
264kB On-Chip-SRAM in sechs unabhängigen Bänken
Unterstützung für bis zu 16MB Off-Chip-Flash-Speicher über dedizierten QSPI-Bus
DMA-Controller
Vollständig verbundene AHB-Crossbar
Interpolator- und Integer-Teiler-Peripheriegeräte
On-Chip programmierbarer LDO zur Erzeugung der Kernspannung
2 On-Chip-PLLs zur Erzeugung von USB- und Kerntakten
30 GPIO-Pins, 4 davon können als Analogeingänge verwendet werden (nicht alle GPIO sind auf diesem Board vorhanden)
Peripheriegeräte
2 UARTs
2 SPI-Controller
2 I2C-Controller
16 PWM-Kanäle
USB 1.1 Controller und PHY, mit Host- und Geräteunterstützung
8 PIO-Zustandsmaschinen
Produktabmessungen: 21,8mm x 17,8mm x 5,8mm / 0,9" x 0,7" x 0,2"
Produktgewicht: 2,2g / 0,1oz