RP2040

Mikrocontroller der Raspberry Pi Foundation auf ARM-Basis

Der RP2040 ist ein 32-Bit-Mikrocontroller, der von der Raspberry Pi Foundation selbst entwickelt und am 21. Januar 2021 der Öffentlichkeit vorgestellt wurde. Er basiert auf einem zweikernigen ARM Cortex-M0+. Sein Nachfolger ist der RP2350.

RP2040-Mikrocontroller
Bild des RP2040-Die
Raspberry Pi Pico mit einem RP2040
Arduino Nano mit RP2040
Entwicklungsboard mit RP2040 von SparkFun

Entwurfsziele

Bearbeiten
  • Geringe Kosten (ca. 1 €)
  • Hohe Verfügbarkeit
  • Einfache Verwendbarkeit
  • Deterministisches Interrupt Handling und Instruction Cycle Timing für zeitkritische Anwendungen

Eigenschaften

Bearbeiten
  • 3,3 V Betriebsspannung
  • 133MHz Dual ARM Cortex-M0+ Cores
  • 264 kB SRAM
    • Für Code und Daten
    • Physisch partitioniert in sechs unabhängige Bänke für gleichzeitigen parallelen Zugriff durch verschiedene Bus-Master
  • Binärcode kann direkt aus externem Speicher über dedizierte Interfaces ausgeführt werden (SPI, DSPI oder QSPI). Ein kleiner Cache erhöht die Performance für typische Applikationen.
  • QSPI Bus-Controller, unterstützt bis zu 16 MB externen Flash-Speicher
  • DMA-Controller
    • DMA-Busmaster sind verfügbar, um sich wiederholende Datentransfers von den Prozessoren auszulagern
  • Advanced High-performance Bus für Chip-internes Daten-Routing
    • Max. Bus-Bandbreite: 2 GB/s @ 125 MHz Systemtakt
  • 2 × On-Chip PLLs, um unabhängig voneinander den System-Takt und den USB/ADC-Takt zu generieren
  • Dedizierte Hardware für feste Peripheriefunktionen wie SPI, I²C, UART
  • Interner Ringoszillator (ROSC), 1,8-12 MHz
  • Quarzoszillator (XOSC) für externe Quarze mit 1-15 MHz
  • 64-Bit System-Timer mit Inkrement von 1 µs
  • RTC (Real-Time Clock)
  • 2 × 4 PIO (Programmable Input/Output) State Machines
  • Interner Temperatursensor
  • Watchdog
  • Brown-out Detection

Peripherie:

  • 30 × GPIO (General Purpose Inputs/Outputs)
    • 2 × UART (Universal Asynchronous Receiver Transmitter)
    • 2 × SPI (Serial Peripheral Interface)
    • 2 × I²C
    • 16 × PWM (Pulse Width Modulation)
    • 6 weitere GPIOs, falls QSPI unbenutzt
  • USB 1.1 (Host- und Device-Modus)
  • 4-Kanal 12-Bit Analog-Digital-Umsetzer (ADC)
    • Nach dem SAR-Prinzip
    • Sample-Rate: 500 kS/s @ 48 MHz ADC-Takt
  • 3-Pin SWD (Serial Wire Debug) Interface

Programmierung

Bearbeiten

Der RP2040 kann in ARM Assembler, C/C++ oder MicroPython programmiert werden. Ein C/C++ SDK für das Raspberry Pi Pico Board ist verfügbar, das auch das freie Real-Time Betriebssystem FreeRTOS unterstützt. Offizielle Beispiel-Programme für den Raspberry Pi Pico sind in GitHub-Repositories zu finden.[1]

Ein weiteres Echtzeitbetriebssystem für den Raspberry Pi Pico ist Zephyr.[2]

2021 veröffentlichten Geoff Graham und Peter Mather den BASIC-Interpreter PicoMite[3] als Ableger von BBC MMBasic. Dieser unterstützt alle PIOs, SD-Karten im FAT16/32-Format, diverse Sensoren, Grafikdisplays, die Kommunikation per UART, I2C und 1-Wire, ADC, PWM und SPI. Die Programmierung erfolgt über den USB-Anschluss auf der Platine per VT100-Emulation. PicoMite beinhaltet auch einen PIO-Assembler.

Der Raspberry Pi Pico lässt sich auch mit der vereinfachten C/C++-Implementierung der Arduino-Plattform programmieren. Sowohl die offizielle Arduino-IDE als auch die alternative PlatformIO-IDE werden unterstützt. Auch Arduino selbst bietet mit dem Arduino Nano RP2040 Connect ein Board mit dem RP2040 an.

Besonderheiten

Bearbeiten
  • Das I/O-Subsystem ist als PIO (Programmable Input/Output) ausgeführt. Es handelt sich dabei um State Machines, die sich mittels 9 spezieller Assembler-Instruktionen in ihrer konkreten Funktion frei programmieren lassen. Das ermöglicht somit Software-Implementierungen von Protokollen wie SDIO, I²S, DVI-D und DPI (Display Pixel Interface).
  • Ein vollständig verbundener Switch verbindet ARM-Cores und DMA-Engines mit sechs unabhängigen RAM-Bänken
  • Ein USB-Controller incl. PHY-Interface ist bereits im Chip integriert, so dass kein externer USB-Controller IC (z. B. USB-UART Bridge) benötigt wird

Package & Herstellungsprozess

Bearbeiten

Der Chip wird im 40-nm-Verfahren hergestellt. Er hat eine Größe von 2 mm² und ist in einem 7 × 7 mm großen QFN-56-SMD-Gehäuse untergebracht.

Namensgebung

Bearbeiten
Namensschema[4]
RP 2 0 4 0
Raspberry Pi Anzahl Cores Prozessor-Typ:
M0+
RAM-Größe:
 
NVRAM-Größe:
 
0: kein on-board NVRAM
Bearbeiten
Commons: RP2040 – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise

Bearbeiten
  1. raspberrypi / pico-examples, auf /github.com, abgerufen am 26. Juli 2021
  2. Supported Boards. Zephyr Project, 15. Juli 2022, abgerufen am 24. Juli 2022 (englisch).
  3. heise online: PicoMite: Neuer Basic-Interpreter für den Raspberry Pico. Abgerufen am 16. Januar 2022.
  4. RP2040 Datasheet. (PDF) In: RaspberryPi.org. Abgerufen am 18. Juli 2021 (englisch).
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy