RP2040 — разбор микроконтроллера Raspberry Pi

Если вы уже окунулись в мир встроенных систем или самодельной электроники, то наверняка слышали о RP2040. Но что именно выделяет этот крошечный чип от Raspberry Pi среди множества микроконтроллеров? Выпущенный в 2021 году как «мозг» культового Raspberry Pi Pico, RP2040 незаметно стал фаворитом среди любителей, преподавателей и даже профессиональных инженеров. В этом подробном обзоре мы рассмотрим, почему это двухъядерное чудо переопределяет возможности бюджетных микроконтроллеров и как вы можете начать работать с ним уже сегодня.

Что такое RP2040?

RP2040 — это микроконтроллер (MCU), представленный Raspberry Pi Foundation. Он служит основным компонентом для Raspberry Pi Pico и других плат разработчика. Сейчас он продается на официальном сайте по цене 10 долларов.

An image showing the RP2040 microchip for sale priced at 10.00
RP2040 Microchip - Available for Purchase at $10.00

Спецификация RP2040

Чип RP2040 поставляется в корпусе QFN-56 размером 7×7 мм со следующими техническими характеристиками:

  • Двухъядерный процессор Arm Cortex-M0+ с тактовой частотой 133 МГц
  • 264 КБ встроенной SRAM и 2 МБ встроенной флэш-памяти
  • Поддержка до 16 МБ внечиповой флэш-памяти через специальную шину QSPI
  • Оснащен контроллером DMA
  • Имеет 30 выводов GPIO, 4 из которых могут использоваться в качестве аналоговых входов
  • Имеет 2 UART, 2 SPI-контроллера и 2 I2C-контроллера
  • Предлагает 16 каналов PWM
  • Обеспечивает поддержку USB 1.1 хост и устройств
  • Включает 8 программируемых состояний ввода-вывода (PIO) Raspberry Pi для поддержки пользовательских периферийных устройств
  • Поддерживает режим загрузки с USB-накопителя с поддержкой UF2 для программирования методом перетаскивания
A dimension diagram of the RP2040 chip, showing various measurements in millimeters.
RP2040 Chip Dimension Diagram (in mm)

Объяснение наименования RP2040

Название RP2040 отражает его основные характеристики:

  • RP: означает Raspberry Pi, разработчика.
  • 2: обозначает двухъядерные процессоры Arm Cortex — M0+.
  • 0: обозначает тип ядра (в данном случае M0+).
  • 4: рассчитывается как floor(log2(SRAM/16k)), где 264 КБ SRAM → ~4.
  • 0: Получено из floor(log2(non - volatile/16k)), с 2 МБ флэш-памяти → ~7, но упрощено до 0 в наименовании.
An illustration explaining the naming convention of the RP2040 microchip with arrows and descriptions for each part of the name
RP2040 Microchip Naming Convention Explanation

Распиновка RP2040

RP2040 оснащен 30 контактами GPIO, которые могут использоваться для различных целей. Они могут считывать цифровые входы с таких устройств, как кнопки и датчики, а также обеспечивать цифровые выходы для управления светодиодами и реле.

Примечательно, что его подсистема программируемого ввода/вывода (PIO) имеет две машины состояний. Это позволяет создавать пользовательские протоколы связи, такие как простое управление светодиодными лентами WS2812 или создание пользовательского интерфейса VGA, что снижает нагрузку на ЦП.
A top view pinout diagram of the RP2040 microchip labeling various pins such as GPIO power and communication pins
RP2040 Microchip Pinout Diagram (Top View)

Блок-схема RP2040

Особенности чипа RP2040:

  • 2 UART: последовательные коммуникации для устройств/модулей/компьютеров.
  • 2 SPI: высокоскоростная передача данных по принципу «ведущий-ведомый» (например, флэш-карты/карты SD).
  • 2 I2C: многоустройственная шина для датчиков/EEPROM через линии SDA/SCL.
  • 16 PWM: управление скоростью двигателя/яркостью светодиодов посредством модуляции рабочего цикла.
Block diagram of the RP2040 microchips internal architecture showing components like processors peripherals and memory
RP2040 Microchip Internal Architecture Block Diagram

Поддержка разработки для RP2040

Официальная плата для разработки — Raspberry Pi Pico

Raspberry Pi Pico служит официальной платой разработчика для RP2040 и является отличным стартовым пунктом для разработчиков. Эта компактная плата размером всего 65 мм x 17 мм невероятно доступна по цене — всего 4 доллара, что делает ее доступной для широкого круга пользователей, от любителей с ограниченным бюджетом до студентов, изучающих мир микроконтроллеров.

Images of four Raspberry Pi Pico series development boards (Pi Pico, Pi Pico H, Pi Pico W, Pi Pico WH) based on the RP2040 microcontroller, showcasing their board layouts and component differences.
A lineup of Raspberry Pi Pico series boards powered by the RP2040 MCU

Одним из больших преимуществ Raspberry Pi Pico является простота использования. Он имеет простую форму с рядом контактов GPIO с обеих сторон, четко обозначенных для легкой идентификации. Такая компоновка упрощает подключение внешних компонентов, таких как датчики, исполнительные механизмы или дисплеи. Например, подключение датчика температуры, такого как DHT11, к Pico так же просто, как подключение контакта данных датчика к одному из контактов GPIO на Pico, а также подключение питания и заземления.

Pico также имеет встроенный USB-разъем, который используется как для питания платы, так и для ее программирования. При подключении к компьютеру он отображается как устройство хранения данных, что позволяет легко программировать с помощью «перетаскивания». Например, если вы написали скрипт MicroPython или скомпилировали двоичный файл C/C++, вы можете просто скопировать файл на виртуальный диск Pico, и он начнет выполнять программу.

В дополнение к основным аппаратным функциям, Raspberry Pi Pico поставляется с обширной официальной документацией и примерами кода. Официальный веб-сайт Raspberry Pi предоставляет подробные руководства по всему, от начала работы с платой до расширенного использования ее функций. Эти ресурсы чрезвычайно полезны для начинающих, которые только начинают изучать программирование микроконтроллеров, и для опытных разработчиков, которые хотят быстро освоить возможности RP2040.

Языки программирования и фреймворки

RP2040 поддерживает несколько языков программирования и фреймворков, предоставляя разработчикам гибкость в выборе наиболее подходящего варианта для своих проектов.

MicroPython: MicroPython — отличный выбор, особенно для начинающих или тех, кто хочет быстро создать прототип своих идей. Это компактная и эффективная реализация языка программирования Python 3, разработанная специально для микроконтроллеров. С MicroPython вы можете писать код на высокоуровневом, легко понятном синтаксисе. Например, управление светодиодом, подключенным к выводу GPIO на RP2040, можно реализовать всего несколькими строками кода:
				
					from machine import Pin
import time

led = Pin(25, Pin.OUT)
while True:
    led.value(1)
    time.sleep(1)
    led.value(0)
    time.sleep(1)

				
			
Эта простота позволяет разработчикам сосредоточиться на функциональности своего проекта, а не увязать в низкоуровневых деталях программирования. MicroPython также имеет богатый набор библиотек, которые можно использовать для взаимодействия с различными аппаратными компонентами, такими как датчики, коммуникационные модули и дисплеи.

C/C++: Для тех, кому требуется больший контроль над аппаратным обеспечением и более высокая производительность, C/C++ является отличным выбором. RP2040 имеет официальный SDK (набор средств разработки программного обеспечения) C/C++, который предоставляет полный набор библиотек и инструментов для разработки приложений. SDK включает драйверы для всех периферийных устройств RP2040, таких как интерфейсы GPIO, PIO, UART, SPI и I2C. С помощью C/C++ разработчики могут писать высокооптимизированный код, который позволяет в полной мере использовать преимущества двухъядерной архитектуры RP2040. Например, при реализации высокоскоростной системы сбора данных C/C++ можно использовать для написания кода, который эффективно считывает данные с нескольких датчиков, подключенных к контактам GPIO RP2040, и обрабатывает их в режиме реального времени.

Инструменты и IDE

Существует несколько инструментов и интегрированных сред разработки (IDE) для разработки приложений для RP2040.

Тонни

Thonny — популярный выбор, особенно для разработки на MicroPython. Он имеет удобный интерфейс, который легко освоить даже новичкам. Thonny предоставляет встроенную оболочку Python, которая позволяет разработчикам интерактивно тестировать свой код. Вы можете вводить команды Python и сразу же видеть результаты, что делает его отличным инструментом для отладки и изучения возможностей RP2040. Чтобы использовать Thonny с RP2040, сначала необходимо подключить Pico к компьютеру через USB. Затем в Thonny можно выбрать соответствующий интерпретатор Python (MicroPython для RP2040). После настройки вы можете писать, запускать и отлаживать свой код MicroPython прямо в Thonny.

VS Code

Visual Studio Code — это мощный кроссплатформенный редактор кода, который приобрел значительную популярность среди разработчиков. Он имеет широкий спектр доступных расширений, что делает его подходящим для разработки RP2040. Для разработки на C/C++ расширение «C/C++» от Microsoft предоставляет такие функции, как подсветка кода, IntelliSense (автозаполнение кода) и поддержка отладки. Для MicroPython расширение «MicroPython» предлагает аналогичные функции. Чтобы настроить VS Code для разработки RP2040, необходимо установить соответствующие расширения и настроить параметры сборки и отладки в соответствии с требованиями вашего проекта. Например, если вы работаете над проектом C/C++, вам необходимо настроить путь Pico SDK и настроить отладчик для работы с RP2040.

Чипы RP2040 и RP2350

RP2040 и RP2350 — это микроконтроллеры, разработанные компанией Raspberry Pi. RP2040 был одной из первых моделей, а RP2350 — более совершенная последующая модель с расширенными функциями. Ниже приведено сравнение этих двух моделей:

A side by side comparison image of RP2040 and RP2350 microchips labeled with their respective names
RP2040 and RP2350 Microchips Comparison
FeatureRP2040RP2350
Core ArchitectureDual Arm Cortex-M0+Dual Arm Cortex-M33 or Dual RISC-V Hazard3
Clock Speed133MHz150MHz
On-chip SRAM264KB520KB
Security FeaturesBasic security featuresArm TrustZone, Signed Boot, SHA-256, TRNG, Fault Detectors
Peripheral Interfaces2×UART, 2×SPI, 2×I2C, ADC, PWM, USB 1.1Enhanced peripherals, additional PIO state machines, more GPIO pins, higher power efficiency
PackagingSingle 7×7mm QFN56 option7×7mm QFN60 (RP2350A) with 30 GPIOs or 10×10mm QFN80 (RP2350B) with 48 GPIOs; both with 2MB stacked QSPI flash (RP2354A and RP2354B)

Заключение

В заключение, RP2040 — это замечательный микроконтроллер, который оказал значительное влияние на мир встраиваемых систем и разработку электроники. Приглашаем вас поделиться своим мнением или опытом!

Поделиться:

Прокрутить вверх

Instant Quote