Перейти к содержанию
ERITKOM
УстройстваРазбор

Raspberry Pi Pico 2: две архитектуры, программируемые интерфейсы и работа без Linux

Pico 2 — плата микроконтроллера, а не уменьшенная Pi5. Разбираем RP2350, память, PIO, MicroPython и отладку по шести официальным источникам.

Raspberry Pi Pico2 с микроконтроллером RP2350 и контактами платы
Suyash Dwivedi / Wikimedia Commons, CC BY-SA4.0. Размер и формат адаптированы, та же лицензия. Изменены размер и формат.

Плата для управления устройством, а не настольной системы

Raspberry Pi Pico 2 построена на RP2350 и относится к микроконтроллерным платам. Её программа работает непосредственно с аппаратной средой; здесь не предполагается обычная загрузка настольного Linux с оконными приложениями. Это другой класс устройства внутри знакомого семейства Raspberry Pi, предназначенный для управления электроникой и встроенных задач.

В спецификации платы указаны частота 150 МГц,520 КБ встроенной оперативной памяти и 4 МБ внешней QSPI flash на самой плате. Последняя хранит программу и данные, но не является съёмной microSD. У Pico 2 сохраняются форма платы и совместимость с первым поколением в пределах документированных интерфейсов. Контактные площадки с полукруглыми отверстиями допускают монтаж непосредственно на несущую плату.

Базовую Pico 2 необходимо отличать от Pico 2W. Беспроводная версия добавляет Wi-Fi2,4 ГГц 802.11n и Bluetooth5.2; наличие общего процессорного семейства не означает, что радио есть на любой плате. Возможность программирования на Python также не делает устройство обычным персональным компьютером: поддерживаемая реализация и аппаратные библиотеки рассчитаны на микроконтроллер и его ограничения памяти.

Arm и RISC-V выбираются, а не складываются в четыре ядра

Особенность RP2350 — две альтернативные процессорные архитектуры. Внутри предусмотрены пары Arm Cortex-M33 и Hazard3 RISC-V. Пользователь выбирает соответствующий вариант; некорректно описывать микроконтроллер как систему, в которой все четыре таких ядра одновременно образуют общую универсальную вычислительную группу.

Официальная продуктовая страница RP2350 описывает выбор программным способом либо через настройку однократно программируемой памяти. Arm-часть включает аппаратную работу с числами одинарной точности и DSP-инструкции. Кроме процессорных ядер, существуют DMA, аппаратные интерфейсы и программируемая периферия, поэтому организация внешнего обмена не обязана сводиться к постоянному опросу каждого сигнала центральным кодом.

Семейство самого чипа шире одной готовой Pico 2. Варианты RP2350A и RP2350B отличаются корпусом и количеством GPIO, а RP2354 добавляет встроенную в корпус flash. Эти характеристики нельзя автоматически переносить на все контакты конкретной платы. Микросхема предоставляет набор возможностей, а разработчик платы выбирает, как вывести их наружу, какое питание и память добавить и какие сигналы оставить для внутренних соединений.

Вид сверху на Pico2: микросхема RP2350, кнопка BOOTSEL и microUSB
Вид сверху на Pico2: микросхема RP2350, кнопка BOOTSEL и microUSB. Profpcde / Wikimedia Commons, CC0. Размер и формат адаптированы. Изменены размер и формат.
Плата Pico2 и микросхема RP2350 — разные уровни спецификации
СвойствоPico2Пояснение
Процессор Два Cortex-M33 либо два Hazard3 Альтернативные архитектуры
Частота 150МГц Заявленная спецификация
SRAM 520КБ Внутри RP2350
Flash 4МБ На готовой плате
Wi-Fi/Bluetooth Только вариант Pico2W Не свойство любой Pico2
Загрузка UF2 через USB Не установка настольного Linux

Источник: Официальная спецификация Pico2

PIO развивает идею специализированного ввода-вывода

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

Там же названы новый блок высокоскоростной передачи HSTX, поддержка внешней QSPI PSRAM и более развитые состояния малого потребления. Однако поддержка со стороны микросхемы и физическое наличие дополнительной памяти на плате — разные вещи. Базовая Pico 2 не получает произвольный объём PSRAM только от того, что такой режим существует у RP2350.

Ещё одно направление изменений — аппаратная архитектура защиты: подписанная загрузка, однократно программируемая память, ускоритель SHA-256 и генератор случайных чисел. Это средства, из которых разработчик строит конкретную защиту продукта, а не готовое универсальное обещание неуязвимости. В анонсе речь идёт о возможностях платформы; включение режимов и обращение с ключами остаются частью проектирования прошивки и изделия.

MicroPython даёт интерактивный путь к программе

Официальная документация описывает MicroPython как реализацию Python3, работающую непосредственно на встроенной аппаратуре. После установки пользователь получает интерактивную командную строку REPL через последовательное соединение USB и файловую систему. Специальные модули открывают доступ к аппаратным функциям микроконтроллера.

Для установки используется файл UF2, соответствующий конкретной плате. В режиме BOOTSEL устройство появляется как накопитель, на который переносится прошивка; затем плата перезагружается уже с MicroPython. Pico, PicoW, Pico 2 и Pico 2W перечислены как разные загрузки. Поэтому выбор файла относится не только к привычному имени семейства, но и к аппаратному варианту.

Интерактивность удобна для проверки отдельных операций и знакомства с датчиками, однако не устраняет пределы памяти и особенности времени исполнения интерпретатора. Наличие Python не означает перенос любого настольного пакета без адаптации. Документация направляет к библиотекам RP2 и примерам именно для микроконтроллеров. Прошивка, текст пользовательской программы и аппаратная разводка остаются отдельными компонентами проекта, даже когда весь путь начинается с простого копирования одного файла.

C/C++ SDK собирает прошивку под определённую плату

Другой официальный путь — SDK для C и C++. Он поддерживает командную строку и интеграцию с IDE, включая Visual Studio Code. В документации отдельно отмечаются ограничения среды разработки: расширение VSCode не поддерживается на 32-битной Raspberry PiOS и варианте Lite, хотя для таких систем описана настройка обычной цепочки инструментов.

Целевая плата выбирается при конфигурации сборки. Это важно даже для короткой программы мигания светодиодом: у Pico и Pico 2 встроенный LED связан с GP25, а у беспроводных вариантов он находится на радиочипе Infineon. Внешне похожая демонстрация поэтому может обращаться к разным аппаратным путям.

SDK предоставляет API и примеры, но результатом сборки является прошивка, а не обычное приложение для установленной на плате настольной ОС. Использование нескольких ядер, DMA и PIO требует соответствующей организации программы. Выбор между MicroPython и C/C++ относится к способу разработки и исполнения кода; он не меняет физический объём SRAM, набор распаянных контактов или наличие радиомодуля у конкретной Pico 2.

Обратная сторона Pico2 с маркировкой GPIO и выводов питания
Обратная сторона Pico2 с маркировкой GPIO и выводов питания. Profpcde / Wikimedia Commons, CC0. Размер и формат адаптированы. Изменены размер и формат.

Отладчик и последовательный порт выполняют разную работу

Raspberry Pi Debug Probe — отдельный USB-адаптер, сочетающий интерфейс SWD и UART. SWD используется для аппаратной отладки совместимых целей, UART — для последовательного обмена. Одинаковый USB-кабель на стороне компьютера не делает эти два канала взаимозаменяемыми.

В официальном описании указаны совместимость с CMSIS-DAP и работа с OpenOCD. Это позволяет использовать компьютер без собственной GPIO-колодки как рабочее место разработчика микроконтроллерной программы. Сам адаптер работает с номинальным уровнем ввода-вывода 3,3 В; подключение к произвольной электронике без проверки уровней не следует из наличия подходящего разъёма.

Документация содержит отдельное предупреждение для цели с самостоятельным источником питания: перед сигнальными линиями требуется общая опорная земля, иначе разность потенциалов может повредить оборудование. Практическая роль отладчика при этом отделена от обычной USB-загрузки UF2. Первую прошивку можно передать без покупки Debug Probe; адаптер нужен для другого уровня наблюдения и управления выполнением. Плата, прошивка, интерфейс загрузки и средства отладки образуют связанную, но не единую обязательную комплектацию.

Источники

Принципы журнала и исправления.

ERITKOM / НОВЫЙ ПРОЕКТ

Расскажите о задаче и оставьте контакты. Мы свяжемся с вами, чтобы обсудить проект.

  1. 01 Контакты
  2. 02 Ваша задача