Waveshare ESP32-P4-Module-DEV-KIT

Waveshare · ESP32-P4-Module-DEV-KIT, базовая плата SKU 30560

Создаёт сетевые интерфейсы с экраном и камерой.

Автор: SLDV LAB

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

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

О МОДУЛЕ

Что делает ESP32-P4-Module-DEV-KIT, базовая плата SKU 30560

ESP32-P4-Module-DEV-KIT построена на модуле Waveshare ESP32-P4-Module. Внутри модуля находятся ESP32-P4NRW32, беспроводной сопроцессор ESP32-C6 и 16 МБ NOR Flash; 32 МБ PSRAM интегрированы в корпус ESP32-P4. Плата подходит для сетевых интерфейсов, мультимедийных прототипов и приложений с MIPI-камерой или дисплеем.

Речь о базовой плате SKU 30560. Наборы -A/-B/-C дополняют её аксессуарами; наличие камеры, экрана, динамика или PoE-модуля нельзя выводить из фотографии основной платы. Это отдельная модель от компактной Core-DEV-KIT и от Espressif ESP32-P4X-Function-EV-Board.

Беспроводная связь реализована через ESP32-C6 по SDIO. Сам ESP32-P4 не содержит радиоблока; при переносе сетевого кода нужен согласованный комплект прошивок P4/C6 и драйвер связи. Наличие C6 на плате не делает произвольный скетч WiFi для других ESP32 готовым к запуску. Помимо 100-Мбит Ethernet доступны microSD, аудиокодек ES8311 с микрофоном и интерфейсом динамика, MIPI-CSI/DSI и USB.

Ревизия кристалла конкретного экземпляра по исходной фотографии не установлена. Официальные материалы встречаются с пределами 360 и 400 МГц. Репозиторий Waveshare разделяет legacy pre-v3 и v3.x: конфигурацию, частоту и бинарный файл выбирают по фактической ревизии. LP-ядро является отдельной малопотребляющей подсистемой, а не третьим равноправным ядром основного приложения.

Первый запуск лучше выполнять через UART USB-C и ESP-IDF с диагностическим проектом 00_board_check без подключённых дисплея, камеры и внешних модулей. После проверки загрузки и PSRAM добавляйте периферию по одному устройству. Возможности видеотракта и интерфейсов не гарантируют работу любого сенсора или дисплея: необходимы совпадающие шлейф, питание, pinout и драйвер.

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

Основной процессор
ESP32-P4NRW32; два HP-ядра RISC-V и отдельное LP-ядро
Частота и stepping
HP до 360 МГц для legacy pre-v3 либо до 400 МГц для v3.x; LP до 40 МГц. Ревизию экземпляра нужно определить.
NOR Flash в модуле
16 МБ
PSRAM в корпусе ESP32-P4
32 МБ
Внутренняя память
768 КБ HP L2MEM, 32 КБ LP SRAM, 8 КБ SPM; ROM 128 КБ HP + 16 КБ LP
Wi-Fi / Bluetooth
ESP32-C6, Wi-Fi 6 2,4 ГГц и Bluetooth 5 LE; связь с P4 по SDIO, отдельная прошивка C6
Ethernet
RJ45, 10/100 Мбит/с
USB
Два USB-C: UART через CH343P и native USB; четыре USB-A в двух сдвоенных корпусах, с маршрутизацией OTG/CH334 через перемычки
Камера и дисплей
Отдельные 2-lane MIPI-CSI и MIPI-DSI; периферия и поддержка драйвера подбираются отдельно
Аудио
ES8311, встроенный микрофон; MX1.25 2-pin для динамика 8 Ом / 2 Вт
Карта памяти
Слот microSD с SDIO 3.0
Внешняя гребёнка
2×20 контактов; 28 выведенных GPIO. Остальные контакты — питание и GND, отдельные GPIO разделены с бортовыми интерфейсами.
Дополнительные разъёмы
J10 I²C и J9 I3C, SH1.0 4-pin по схеме
Питание по Ethernet
Предусмотрен интерфейс для отдельного PoE-модуля; базовая плата без него не получает питание от PoE
RTC-питание
Отдельный разъём только для совместимой перезаряжаемой RTC-батареи; не общий вход LiPo для питания всей платы
Кнопки
BOOT на GPIO35; RESET на ESP_EN
Аппаратная ревизия
Точная ревизия PCB/кристалла по исходному изображению не установлена
CAN/TWAI
Контроллер TWAI доступен в ESP32-P4; для физической CAN-шины нужен отдельный трансивер
Интерфейс
I²C, SPI, UART, Wi-Fi, Bluetooth
Питание модуля
Первый запуск: 5 В через UART USB-C и кабель данных. GPIO работают с логикой 3,3 В и не допускают 5 В. Не соединять несколько источников питания без анализа схемы. Для питания от Ethernet требуется отдельный совместимый PoE-модуль. Разъём RTC предназначен только для перезаряжаемой RTC-батареи, указанной изготовителем: не подключать обычную неперезаряжаемую CR2032 или произвольную LiPo. Не использовать I²C/I3C/USB/аудио-разъёмы как вход батареи. FPC и USB-перемычки переставлять при снятом питании.

ПРАКТИКА

Подключение

Схема подключения
Контакт модуляКонтакт платыНазначение
UART USB-CCH343P → UART0: TX GPIO37 / RX GPIO38Рекомендуемый первый порт для загрузки и журнала. Эти линии также выведены на гребёнку.
Native USB-CGPIO24 D− / GPIO25 D+Отдельный путь встроенного USB; GPIO24/25 на P6 нельзя одновременно назначать другой периферии при использовании USB.
I²C SDA / SCLGPIO7 / GPIO8Общая шина с бортовыми аудио- и MIPI-цепями. Только подтяжки к 3,3 В; не назначать эти контакты независимо от подключённой периферии.
J10 I²C, контакты 1–4GND / 3V3 / SDA (GPIO7) / SCL (GPIO8)Нумерация из оригинальной схемы. Перед подключением проверить ориентацию ответного SH1.0.
J9 I3C, контакты 1–4GND / 3V3 / GPIO33 / GPIO32По схеме линии подтянуты резисторами 2,2 кОм к 3,3 В. Назначение протокола зависит от firmware; не менять порядок по внешнему сходству с J10.
BOOT / RESETGPIO35 / ESP_ENBOOT во время включения/сброса вводит в загрузчик. Не путать с GPIO0 из примеров ESP32-S3.
P6, нечётные контакты 1–191:5V; 3:5V; 5:GND; 7:GPIO37; 9:GPIO38; 11:GPIO22; 13:GND; 15:GPIO5; 17:GPIO4; 19:GNDНомера именно P6 на электрической схеме, не последовательность произвольной фотографии и не Raspberry Pi GPIO.
P6, нечётные контакты 21–3921:GPIO1; 23:GPIO36; 25:GPIO32; 27:GPIO25; 29:GND; 31:GPIO54; 33:GND; 35:GPIO46; 37:GPIO27; 39:GPIO45GPIO25 — USB D+. Совместное использование вывода с активным бортовым интерфейсом требует проверки.
P6, чётные контакты 2–202:3V3; 4:GPIO7; 6:GPIO8; 8:GPIO23; 10:GND; 12:GPIO21; 14:GPIO20; 16:GPIO6; 18:3V3; 20:GPIO3GPIO7/8 — общая I²C-шина. Форма 40-pin не означает совместимость с Raspberry Pi HAT.
P6, чётные контакты 22–4022:GPIO2; 24:GPIO0; 26:GND; 28:GPIO24; 30:GPIO33; 32:GPIO26; 34:GPIO48; 36:GPIO53; 38:GPIO47; 40:GNDGPIO24 — USB D−. GPIO0 здесь не BOOT.
MIPI-CSI / MIPI-DSICAMERA / DISPLAYОтдельные двухполосные интерфейсы. Сверять электрическую совместимость и драйвер конкретной камеры/панели.
USB-A и перемычки HOST/DEVICEUSB OTG HS / CH334 hubВсего четыре USB-A разъёма в двух сдвоенных корпусах; это не четыре независимых USB-контроллера. Маршрутизацию выбирать по схеме и документации, только без питания.

Подходит для ESP32. Выберите контакты по документации своей платы.

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

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

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

Помоги интегрировать Waveshare ESP32-P4-Module-DEV-KIT, базовая плата SKU 30560. Уточни задачу, ревизию кристалла/PCB, SDK/BSP и периферию. У платы 16 МБ NOR Flash и 32 МБ PSRAM, ESP32-C6 с Wi-Fi 6/BLE по SDIO, Ethernet, microSD и ES8311. Не переносить параметры Core-DEV-KIT и P4X-Function-EV-Board.

Начни с UART USB-C и 00_board_check из фиксированного Waveshare Platform. Выбери pre-v3/v3.x по реальному кристаллу, не обходи проверку ревизии через --force. Используй Flash 16 MB и соответствующую PSRAM-конфигурацию. Подготовь минимальный пример, зависимости, обработку ошибок и контрольный вывод, отделив статическую проверку кода от компиляции и испытания на железе.

GPIO7/8 — общая I²C-шина; native USB использует GPIO24/25, UART0 — GPIO37/38, BOOT — GPIO35. P6 имеет 40 физических контактов и не является Raspberry Pi HAT. Для MIPI, аудио, SD, Ethernet и беспроводной связи бери распиновку и BSP именно Module-DEV-KIT; согласуй прошивку ESP32-C6. Питание 5 В, логика 3,3 В. PoE требует отдельного модуля, RTC-разъём — только совместимой перезаряжаемой RTC-батареи.

Библиотеки

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

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

Целевой чип ESP-IDF
esp32p4

Не esp32, esp32s3 или esp32c6.

Опорная версия ESP-IDF
v5.5.5

Объявлена в текущем официальном GETTING_STARTED; hardware-run в этой карточке не выполнялся.

Снимок Waveshare Platform
6f78fa810ec505048c1941e3d09cefc9f29129bd

Фиксированный проверенный исходник; документация веб-сайта содержит другие старые имена revision defaults.

Диагностический проект
examples/esp-idf/00_board_check

Не требует экрана, камеры, сети или внешних GPIO.

Flash Size
16 MB; CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y

Совпадает с реальной Flash модуля и sdkconfig.defaults проекта 00_board_check. Перед сборкой проверить в menuconfig.

Профиль v3.x
config/esp32p4_rev3_x.defaults

Только после подтверждения v3.0+; SELECTS_REV_LESS_V3=n, REV_MIN_300=y.

Профиль legacy pre-v3
config/esp32p4_rev1_3.defaults

Для поддерживаемого v1.x, включая v1.3; SELECTS_REV_LESS_V3=y, REV_MIN_100=y. Для иных stepping сначала сверить поддержку IDF, не выбирать наугад.

PSRAM в board_check
CONFIG_SPIRAM=y; CONFIG_SPIRAM_SPEED_200M=y

Параметры проверенного общего примера; реальную инициализацию подтвердить по журналу. Свободная PSRAM не обязана равняться 32 MB.

Первый USB-порт
UART USB-C; serial monitor 115200 baud

Через CH343P. Использовать один источник питания; PORT заменить реальным портом.

I²C / UART / native USB
SDA=7; SCL=8; UART TX=37/RX=38; USB D−=24/D+=25

Уже связанные бортовые линии; общий диагностический пример не переназначает GPIO.

Получить зафиксированный диагностический проект

text
git clone https://github.com/waveshareteam/ESP32-P4-Platform.git
cd ESP32-P4-Platform
git checkout 6f78fa810ec505048c1941e3d09cefc9f29129bd
cd examples/esp-idf/00_board_check

Команды подготовки проекта в настроенном ESP-IDF v5.5.5 terminal. Это ещё не прошивка. Сначала определить фактическую ревизию кристалла по маркировке/диагностике, затем выбрать ровно один из двух вариантов ниже.

Сборка для подтверждённого кристалла v3.x

text
idf.py -B build-module-v3 -D SDKCONFIG=sdkconfig.module-v3 -D "SDKCONFIG_DEFAULTS=sdkconfig.defaults;../../../config/esp32p4_rev3_x.defaults" set-target esp32p4
idf.py -B build-module-v3 -D SDKCONFIG=sdkconfig.module-v3 menuconfig
idf.py -B build-module-v3 -D SDKCONFIG=sdkconfig.module-v3 build
idf.py -B build-module-v3 -D SDKCONFIG=sdkconfig.module-v3 -p PORT flash monitor

Полный workflow официального 00_board_check для v3.x при установленных SDK/toolchain. В menuconfig перед build обязательно выбрать Flash Size 16 MB и проверить PSRAM/консоль. PORT — реальный UART-порт. Нельзя применять этот бинарный файл к v1.x. Не компилировалось и не прошивалось в ходе подготовки карточки.

Альтернатива: подтверждённый legacy v1.x

text
idf.py -B build-module-v1 -D SDKCONFIG=sdkconfig.module-v1 -D "SDKCONFIG_DEFAULTS=sdkconfig.defaults;../../../config/esp32p4_rev1_3.defaults" set-target esp32p4
idf.py -B build-module-v1 -D SDKCONFIG=sdkconfig.module-v1 menuconfig
idf.py -B build-module-v1 -D SDKCONFIG=sdkconfig.module-v1 build
idf.py -B build-module-v1 -D SDKCONFIG=sdkconfig.module-v1 -p PORT flash monitor

Только для поддерживаемого legacy v1.x, включая v1.3; это отдельная альтернатива, а не продолжение v3.x-команд. В menuconfig выставить Flash Size 16 MB. Не смешивать sdkconfig/бинарные файлы двух build-папок; не использовать --force. Для неопределённой ревизии сначала остановиться и идентифицировать кристалл.

Как оценить результат board_check

text
IDF target: esp32p4
Silicon revision: фактическая ревизия экземпляра
Flash size: проверить настройку и определённую ёмкость
PSRAM: initialized
alive: периодический диагностический вывод

Это перечень ожидаемых полей, не журнал выполненного теста. Демо выводит два HP CPU cores, ревизию, Flash/PSRAM и alive раз в 5 секунд. Для Module-DEV-KIT ожидаются 16 МБ Flash и инициализация 32 МБ PSRAM; свободная куча меньше полной памяти. При ошибке сохранить лог и исправить профиль, а не отключать проверку ревизии.

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

Все проекты

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

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