Was ist kleiner als eine Feder, aber größer als ein Schmuckstück? Es ist ein Adafruit ItsyBitsy RP2040 mit dem Raspberry Pi RP2040!
Ein neuer Chip bedeutet ein neues ItsyBitsy, und der Raspberry Pi RP2040 ist da keine Ausnahme. Als Adafruit diesen Chip sah, dachten sie: "Dieser Chip wird fantastisch sein, wenn wir ihm die ItsyBitsy-Teensy-Weensy-Behandlung verpassen", und das taten sie auch! Itsy' verfügt über den RP2040 und alle Annehmlichkeiten, die Sie von der ItsyBitsy-Familie kennen und lieben
Klein, leistungsstark, mit einem ultraschnellen Dual-Cortex-M0+-Prozessor, der mit 125 MHz läuft - dieses Mikrocontroller-Board ist perfekt, wenn Sie etwas sehr Kompaktes mit viel Leistung und einer Menge Pins wollen. Dieser Itsy hat die Geschwindigkeit eines Sportwagens, aber die Geräumigkeit eines SUV mit 8 MB FLASH und 264KB SRAM.
Der ItsyBitsy RP2040 ist nur 1,4" lang und 0,7" breit, hat aber 6 Stromversorgungspins, 23 digitale GPIO-Pins (von denen 4 analoge Eingänge und 16 x PWM-Ausgänge sein können). Es ist der gleiche Chip wie der Feather RP2040 und Raspberry Pi Pico, aber wirklich sehr klein. Es ist also ideal, wenn Sie einen Prototyp fertiggestellt haben und das Projekt viel kleiner machen wollen. Sogar 8 MB SPI-Flash sind eingebaut, für Datenprotokollierung, Dateispeicherung oder CircuitPython/MicroPython-Code
Gleiche Größe und Formfaktor wie der Rest der ItsyBitsy-Familie und fast identische Pinbelegung
Maße 1,4" x 0.7" x 0,2" (36mm x 18mm x 4mm) ohne eingelötete Header
RP2040 32-bit Cortex M0+ Dual Core mit ~125 MHz bei 3,3V Logik und Leistung
264 KB RAM
8 MB SPI FLASH Chip zum Speichern von Dateien und CircuitPython/MicroPython Code. Kein EEPROM
Tonnenweise GPIO! 23 x GPIO-Pins mit folgenden Möglichkeiten:
Vier 12-Bit-ADCs (einer mehr als beim Pico)
Zwei I2C-, zwei SPI- und zwei UART-Peripherie-Pins, Adafruit Beschriftung einer für die "Haupt"-Schnittstelle in Standard-ItsyBitsy-Positionen
16 x PWM-Ausgänge - für Servos, LEDs usw.
Die 10 digitalen "Nicht-ADC/Nicht-Peripherie"-GPIOs sind aufeinanderfolgend, um maximale PIO-Kompatibilität zu gewährleisten
Pin #13 rote LED für allgemeine Blinkzwecke
RGB-Neopixel mit Power-Pin am GPIO, so dass man ihn für stromsparende Anwendungen abschalten kann
Reset-Taste und Bootloader-Auswahltaste für schnelle Neustarts (kein Herausziehen und Wiedereinstecken, um den Code neu zu starten)
3,3-V-Regler mit 500-mA-Spitzenstromausgang
3,3-V-Stromversorgungs-/Aktivierungspin
Stromversorgung über USB oder externen Ausgang (z. B. Batterie) - automatische Umschaltung
Ausgebrochene SWD-Pins für Debug-Zugriff
12-MHz-Quarz für perfektes Timing.
Ein spezieller Vhigh-Ausgangspin stellt die höhere Spannung von VBAT oder VUSB zur Verfügung, um NeoPixels, Servos und andere 5V-Logikgeräte zu betreiben. Digital 5 pegelverschobener Ausgang für Hochspannungs-Logikpegel-Ausgang.
Der USB-Micro-B-Anschluss ermöglicht den Zugriff auf den integrierten ROM-USB-Bootloader und das Debugging über die serielle Schnittstelle
Im RP2040 befindet sich ein 'permanenter ROM'-USB-UF2-Bootloader. Das heißt, wenn Sie eine neue Firmware programmieren wollen, können Sie die BOOTSEL-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 diese Technik sehr vertraut finden - sie verwenden sie 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? 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 bietet, 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.
Zum Zeitpunkt der Markteinführung gibt es keine Arduino Core-Unterstützung für dieses Board. Es gibt eine großartige C/C++-Unterstützung, eine offizielle MicroPython-Portierung und eine CircuitPython-Portierung! Adafruit empfiehlt natürlich CircuitPython, weil sie der Meinung sind, dass es der einfachste Weg ist, damit anzufangen, und weil es Unterstützung für die meisten ihrer Treiber, Displays, Sensoren und mehr bietet, die von Anfang an unterstützt werden, so dass Sie mit ihren CircuitPython projects und Tutorials mitgehen können.
Dieser Itsy wird mit losen 0,1"-Leitungen geliefert, die Sie für die Verwendung auf dem Breadboard einlöten können!
Der RP2040 verfügt zwar über viel Onboard-RAM (264KB), aber nicht über einen eingebauten FLASH-Speicher. Stattdessen wird dies durch den externen QSPI-Flash-Chip gewährleistet. Auf diesem Board befinden sich 8 MB, die zwischen dem laufenden Programm und dem von MicroPython oder CircuitPython verwendeten Dateispeicher aufgeteilt werden. Bei der Verwendung von C/C++ steht Ihnen der gesamte Flash-Speicher zur Verfügung, bei der Verwendung von Python bleiben Ihnen etwa 7 MB für Code, Dateien, Bilder, Schriftarten usw.
TECHNISCHE DETAILS
RP2040 Datenblatt: https://datasheets.raspberrypi.org/rp2040/rp2040_datasheet.pdf
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-Peripherie
On-Chip programmierbarer LDO zur Erzeugung der Kernspannung
2 On-Chip-PLLs zur Erzeugung von USB- und Kerntakten
30 GPIO-Pins, von denen 4 als Analogeingänge verwendet werden können
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
LEARN
Eine Einführung in RP2040 PIO mit CircuitPython - Lernen Sie, wie Sie den leistungsstarken I/O-Coprozessor im RP2040 nutzen können