This is an old revision of the document!


Intro to Raspberry Pico

Microcontroller

Microcontrollers are tiny integrated circuits (ICs) that you can program to perform various tasks. They have a processor, memory, and input/output pins (GPIO) to interact with the external world. From toys to cars, microcontrollers are everywhere in electronics.

The RP2040 is a powerful and versatile microcontroller built by the Raspberry Pi Foundation. This chip, based on the ARM architecture, is the heart of development boards like the popular Raspberry Pi Pico. We also utilize the RP2040 in Marble Pico board.

To unleash the potential of the RP2040, the Raspberry Pi Foundation created the Pico-SDK. This free and open-source software development kit (SDK) equips you with the tools and libraries needed to program the RP2040 in C and C++.

RP2040

This chip name was provided by the Raspberry Pi foundation and is explained in the datasheet:

  • RP: Stands for “Raspberry Pi,” similar to how other Raspberry Pi products use “Pi” in their names.
  • 2: Indicates the number of cores in the CPU. The RP2040 has a dual-core processor.
  • 0: Represent the CPU type (Arm Cortex-M0+) used in the RP2040.
  • 4: Signifies the amount of RAM (in kilobytes) on the chip. The RP2040 typically comes with 256KB of RAM (2^4 * 16KB) - floor(log2(ram / 16k)).
  • 0: Signifies the amount of nonvolatile storage on the chip. The RP2040 typically comes with 0MB of flash but can have ur up to 16MB of off-chip Flash memory via dedicated QSPI bus (2^4 * 16KB) - floor(log2(nonvolatile / 16k)).

RP2040 has a dual M0+ processor cores, DMA, internal memory and peripheral blocks connected via AHB/APB bus fabric. It offers a variety of features for flexible development:

  • Memory:
    • External memory support: Code can be executed directly from external flash memory using SPI, DSPI, or QSPI interfaces. A small internal cache improves performance for frequently accessed data.
    • Internal SRAM: Internal memory (264 kB) can store code or data and is accessible by different parts of the chip simultaneously.
  • Processing:
    • DMA: Dedicated DMA (Direct Memory Access) channels offload repetitive data movement tasks from the processors, improving efficiency.
    • Flexible I/O: GPIO pins can be controlled directly or through built-in logic functions.
  • Communication:
    • Hardware peripherals: Dedicated hardware handles standard communication protocols like SPI, I2C, and UART.
    • Programmable I/O (PIO): Flexible PIO controllers can be configured for various custom I/O functions.
  • USB:
    • Integrated USB controller: Provides USB host or device functionality under software control (Full Speed/Low Speed).
  • Analog-to-Digital Converter (ADC): Four ADC channels can be used to convert analog signals to digital data.
  • Clocks:
    • Dual Phase-Locked Loops (PLLs): Generate clocks for specific functions like USB (48MHz) and the system (up to 133MHz).
  • Power Management:
    • Internal voltage regulator: Simplifies power supply by requiring only an external voltage source for I/O.

In short, the RP2040 packs powerful processing, flexible memory options, diverse communication options, and built-in peripherals, making it suitable for various development projects.

References

eap/laboratoare/01.1721029570.txt.gz · Last modified: 2024/07/15 10:46 by jan.vaduva
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0