Waveshare RP2350-PiZero

Waveshare · RP2350-PiZero, SKU 31836

RP2350B в форм-факторе Pi Zero: DVI, microSD, PIO-USB и 40-контактный разъём.

Автор: SLDV LAB

Опубликовано · Обновлено

СложностьСредне
Проекты с компонентом

О МОДУЛЕ

Что делает RP2350-PiZero, SKU 31836

RP2350-PiZero объединяет микроконтроллер RP2350B и периферийные разъёмы на плате с 40-контактным расширением. Подходит для небольших контроллеров, USB-устройств, экспериментов с DVI и автономных интерфейсов. Исполняет прошивку C/C++, Arduino или MicroPython; Linux и обычные приложения Raspberry Pi на ней не запускаются.

Название PiZero описывает компоновку, а не программную совместимость с Raspberry Pi Zero. Физические позиции питания и части интерфейсов похожи на Raspberry Pi, но номера GPIO RP2350 отличаются от BCM. Поддержка HAT требует отдельной проверки напряжений, разводки и драйвера. Плата не имеет встроенных Wi-Fi и Bluetooth.

16 МБ Flash находятся в отдельной микросхеме на плате. PSRAM в штатной комплектации не установлена: предусмотрены только паяльные площадки. DVI через mini-HDMI рассчитан на совместимый экран; полноценные HDMI-функции и звук не заявлены. Производитель ограничивает одновременное использование своих примеров DVI и PIO-USB; рассчитывать на их совместную работу без отдельной разработки нельзя.

Для первого запуска используйте только USB и простой GPIO-пример. На плате есть зарядная схема для одноэлементного Li-ion/LiPo, однако это не обещание защиты любого аккумулятора. Перед автономной работой нужно проверить полярность, допустимый зарядный ток и защиту элемента по схеме конкретного экземпляра. На опубликованной схеме R27=160 кОм соответствует подписи 1 А: небольшой аккумулятор может быть непригоден.

Аппаратная ревизия конкретного экземпляра не установлена. Не переносите настройки RP2040-PiZero, Pico 2 или RP2350-Plus. Распиновка в медиа — неизменённый фрагмент оригинальной схемы Waveshare. Фото производителя получено из каталога BerryBase и сверено с моделью и исходным снимком пользователя; изменены только фон и масштаб.

Характеристики

Микроконтроллер
Raspberry Pi RP2350B; два активных ядра, выбор Arm Cortex-M33 или Hazard3 RISC-V
Штатная максимальная частота
150 МГц
Встроенная SRAM
520 КБ
Flash готовой платы
16 МБ
Размещение Flash
Отдельная W25Q128JV на опубликованной схеме; не встроена в RP2350B
PSRAM
Не установлена; предусмотрены площадки U1, CS на GP47
GPIO на 40-контактном разъёме
28
Аналоговые входы
ADC есть в RP2350B, но GP40–47 не выведены на стандартный 40-контактный разъём: они распределены между microSD, DVI и PSRAM
Периферия МК
2 × SPI, 2 × I²C, 2 × UART; в RP2350B 12 PWM slices / 24 канала; на J5 (GP0–27) доступны 16 разных PWM-каналов с повторными назначениями выводов; 12 PIO state machines; HSTX
Видеовыход
DVI через mini-HDMI; требуется DVI-совместимый экран
Накопитель
microSD/TF; отдельная от Flash шина, выводы по схеме платы
USB
Аппаратный USB 1.1 и отдельный PIO-USB; оба разъёма USB-C
Аккумуляторная часть
ETA6096; разъём PH2.0 для 1S Li-ion/LiPo, номинал 3,7 В
Беспроводная связь
Встроенных Wi-Fi и Bluetooth нет
Ревизия
SKU 31836; аппаратная ревизия экземпляра не подтверждена
Интерфейс
I²C, SPI, UART
Питание модуля
Первый запуск: 5 В через разъём USB-C с маркировкой USB. GPIO: 3,3 В; 5 В на GPIO не подавать. VBUS и 3V3 — разные цепи. J3 BAT: только подходящий защищённый 1S Li-ion/LiPo (3,7 В nominal, 4,2 В full); по схеме J3 pin2=VBAT+, pin1=GND. Ориентацию разъёма и полярность кабеля проверить отдельно. Не подключать 2S, LiFePO4 или неперезаряжаемый элемент. Не соединять внешние источники питания без проверки развязки.

ПРАКТИКА

Подключение

Схема подключения
Контакт модуляКонтакт платыНазначение
USB-C с надписью USBUSB хостаПитание и загрузка UF2. Не перепутать со вторым PIO-USB; пример без аккумулятора.
Внешний LED: анод через резистор 1 кОмGP17, физический контакт 11 разъёма J5Минимальный пример ниже. Катод LED — к GND, например физическому контакту 9. Соединять при снятом питании.
SDA / SCL разъёма J5GP2 / GP3, физические контакты 3 / 5Аппаратный I²C1 RP2350; внешние подтяжки только к 3,3 В. Не BCM-нумерация.
UART TX / RX разъёма J5GP4 / GP5, физические контакты 8 / 10Аппаратный UART1; на Raspberry Pi эти позиции называются BCM14/15, здесь код использует 4/5.
SPI SCK / MOSI / MISO разъёма J5GP10 / GP11 / GP12, физические контакты 23 / 19 / 21SPI1. CE0/CE1 на плате — GP8/GP7 (контакты 24/26); CS задавать явно, не полагаться на default CS SDK.
microSD SPI SCK / MOSI / MISO / CSGP30 / GP31 / GP40 / GP43Проверено по SD_CARD оригинальной схемы; CS именно GP43, не GP41. SDIO также использует GP41/GP42.
PIO-USB D+ / D−GP28 / GP29Не переносить выводы RP2040-PiZero. Совместимость конкретного PIO-USB стека проверить по примеру Waveshare.
Питание J53V3: контакты 1/17; VBUS: 2/4; GND: 6/9/14/20/25/30/34/39Нумерация физических контактов разъёма, не GPIO. 3V3 не является входом для 5 В.
SWCLK / GND / SWDIOОтдельный трёхконтактный разъём H1По схеме H1: pin3 SWCLK, pin2 GND, pin1 SWDIO. Ориентироваться по CLK/GND/DIO на плате.
Аккумулятор J3pin2 VBAT+ / pin1 GNDЭто номера на схеме, не порядок слева направо. R27=160 кОм с подписью 1 А; ток и защиту элемента проверить до подключения.

ВАШ ПРОЕКТ · ВАШ ДАТЧИК

Интегрируйте модуль с ChatGPT

Скопируйте запрос в ChatGPT. Укажите свою плату и среду разработки — получите подключение и код для своего проекта.

Помоги интегрировать именно Waveshare RP2350-PiZero (SKU 31836, RP2350B) в мой проект. Сначала уточни задачу, среду, ревизию платы, питание и подключаемые устройства. Используй GPIO RP2350 из схемы, не BCM-нумерацию Raspberry Pi. Подтверждённая база: Pico SDK 2.3.0, PICO_BOARD=waveshare_rp2350_pizero, 16 МБ внешней Flash, 520 КБ SRAM, PSRAM штатно не установлена; GPIO 3,3 В. I²C1 — GP2/3, UART1 — GP4/5, внешняя SPI1 — GP10/11/12, а CS задаётся отдельно.

Предложи схему подключения, зависимости, полный минимальный пример, обработку ошибок и пошаговую проверку. Учти занятые выводы microSD/DVI/PIO-USB, ограничение примеров DVI+PIO-USB и отсутствие Wi-Fi/Bluetooth. Не обещай Linux или автоматическую совместимость HAT. Для аккумулятора проверь 1S Li-ion/LiPo, полярность J3, зарядный ток и защиту. Не запускай разрушающие SD-тесты format/lliot и не утверждай аппаратную проверку без реального устройства.

Библиотеки

Установите библиотеку для своей среды и откройте пример из её документации.

Что именно прописать

Среда примера
Raspberry Pi Pico SDK 2.3.0, C/C++

В версии 2.3.0 подтверждён отдельный header платы.

PICO_BOARD
waveshare_rp2350_pizero

Задать до pico_sdk_init(); вариант RP2350B, не pico2.

PICO_PLATFORM
rp2350-arm-s

Пример для Arm; не менять архитектуру готового бинарного файла.

Flash / PSRAM
16 MB / not fitted

Flash задаёт board header. Площадки PSRAM не означают установленную память.

LED_GPIO
17

Внешний LED через 1 кОм на физическом контакте 11; катод на GND.

I²C / UART
I2C1: SDA2 SCL3; UART1: TX4 RX5

Это номера GPIO RP2350, а не физические позиции и не BCM.

SPI разъёма J5
SPI1: SCK10 MOSI11 MISO12; CS explicitly selected

Пины CS в SDK по умолчанию не равны CE0/CE1 разъёма. На схеме CE0=GP8, CE1=GP7.

Первый запуск
USB only; no HAT, no battery

Соединить внешний LED при отключённом питании. BOOT удерживать при подключении USB либо при отпускании RUN.

Внешний LED на GP17: полный main.c

cpp
#include "pico/stdlib.h"

#define LED_GPIO 17u

int main(void) {
    gpio_init(LED_GPIO);
    gpio_put(LED_GPIO, 0);
    gpio_set_dir(LED_GPIO, GPIO_OUT);
    while (true) {
        gpio_put(LED_GPIO, 1);
        sleep_ms(500);
        gpio_put(LED_GPIO, 0);
        sleep_ms(500);
    }
}

Полный исходник для RP2350-PiZero и Pico SDK 2.3.0. LED внешний, не встроенный PWR. Нужен последовательный резистор 1 кОм. GPIO/API сверены по схеме и SDK; компиляция и запуск на плате не выполнялись.

CMakeLists.txt для того же main.c

text
cmake_minimum_required(VERSION 3.13)
set(PICO_BOARD waveshare_rp2350_pizero CACHE STRING "Board")
set(PICO_PLATFORM rp2350-arm-s CACHE STRING "Platform")
include($ENV{PICO_SDK_PATH}/external/pico_sdk_import.cmake)
project(sldv_pizero_blink C CXX ASM)
pico_sdk_init()
add_executable(sldv_pizero_blink main.c)
target_link_libraries(sldv_pizero_blink pico_stdlib)
pico_add_extra_outputs(sldv_pizero_blink)

Полный CMakeLists.txt. PICO_SDK_PATH должен указывать на установленный Pico SDK 2.3.0 с его submodules и настроенным Arm toolchain. Собрать в новой build-папке; старый CMake cache может сохранять другую плату.

Сборка и загрузка

text
cmake -S . -B build
cmake --build build

После успешной сборки удерживать BOOT при подключении разъёма USB, затем скопировать build/sldv_pizero_blink.uf2 на появившийся загрузочный диск. Ожидаемый результат — 0,5 с включено / 0,5 с выключено у внешнего LED. Фактическая сборка, прошивка и этот результат не проверялись.

Проекты с этим компонентом

Все проекты

Связанные проекты пока не опубликованы.

Связанные материалы и компоненты