RP2040
RP2040 is a 32-bit dual ARM Cortex-M0+ microcontroller integrated circuit by Raspberry Pi Ltd.
By Phiarc - Own work, CC BY-SA 4.0, Link
The microcontroller can be programmed in assembly, C, C++, Swift, Free Pascal, Rust, Go, MicroPython, CircuitPython, Ada and TypeScript.
RP2040 Datasheet
Key features
- 133 MHz dual ARM Cortex-M0+ cores (ARMv6-M)
- Each core has an integer divider peripheral, and two interpolators.
- 264 KB SRAM in six independent banks (four 64 KB, two 4 KB)
- No internal flash or EEPROM memory (after reset, the boot-loader loads firmware from either external flash memory or USB into internal SRAM)
- QSPI bus controller supports up to 16 MB of external flash memory
- DMA controller, 12 channel, 2 IRQ. (NOTE: RP2350 family has 16 and 4).
- AHB crossbar, fully-connected
- On-chip programmable low-dropout regulator (LDO) to generate core voltage
- Two on-chip PLLs to generate USB and core clocks
- 30 GPIO pins, of which four can optionally be used as analog inputs
Peripherals
- One USB 1.1 (LS & FS) controller and PHY, host and device support, 1.5 Mbps (Low Speed) and 12 Mbps (Full Speed).
- Two UART controllers.
- Two SPI controllers.
- One QSPI (quad SPI) controller (SSI), supports 1 / 2 / 4-bit SPI transfers, 1 chip select.
- Two I²C controllers.
- Eight PIO (programmable input–output) state machines.
- 16 PWM channels.
- 4-channel 12-bit 500-Ksps SAR ADC, extra channel is connected to internal temperature sensor. .