Новый камень ESP32-P4

Перед покупкой камня ESP32-P4 хотел узнать мнение форумчан, как он поддерживается Arduino IDE, хорошо ли работает с дисплеями?

В модулях он часто идëт в связке с ESP32-C6, хорошо ли они вместе работают?

Скачай обновление плат esp32. Внутри должны быть примеры для p4. Вот и узнаешь что там есть.

глянул на досуге

примеры для p4 есть там…

Так яхотел узнать мнение, тех кто пользуется таким камнем, на других форумах пишут что поддерживается частично.

Судя по тишине, другого ответа не будет.

По большому счету особенность у p4 это вайфай через c6. В ссылке, которую я дал, как разз это и описано как этот вайфай использовать.

Хорошо. у P4 нет WiFI, а у C6 - есть. Вот он как внешний модуль WiFi и используется.

P4 супер шустрый. И SIMD продвинутый. Для мультимедии хорошо подходит. Что задумали?

Мне больше нравится, что C6 с Zigbee может работать.

Хочу купить вот этот модуль для метеостанции/умного дома, он как раз ESP32-P4 экран 10,1 Дюйма

Привет
Хотел узнать , попробовали ли в итоге esp32-p4 и что из этого вышло. Уж больно камень кучерявый

Последние 4 месяца использую его. Я взял материнку маленькую вот такую: jc-esp32p4-m3-dev

Шустрая, крутая.

Никаких особенностей не заметил, по сравнению с S3 или обчыным ESP32.

Насколько я понял, это совершенно другой камень по сравнению с чипами серий S или С. Много ли поиходится адаптировать в коде при портировании старых есп32 проектов на этот чип? Или вообще все писать заново?

В espressif такая идеология их SDK , что нет, НИЧЕГО портировать не нужно. Ну, почти ничего. Ну разве что WIFI теперь нужно использовать через API hosted. Но это и раньше было на их чипах без встроенного WIFI модуля.

Другими стали bootstrap пины. Но это мало кого колышет.

Архитектура другая, (RISC против Xtensa), но это все скрыто в SDK. Что в Xtense , что в RISC функция, скажем, get_cpu_cycles_count (точное название)- одна и та же. Библиотеки для звука, графики и ИИ - написаны на ассемблере самим эспрессифом для всех платформ. Короче, прозрачно все.

Свои проекты я перенес и не заметил вообще разницы. Просто скомпилировалось и запустилось. Но перенос был с S3 на P4

PS: зависит от того, насколько сильно вы привязались к особеностям прежнего камня. Если же вы в рамках Ардуино АПИ и ESPIDF АПИ остаетесь - то все должно заработать само-собой

А, забыл, совет еще, может пригодиться: пока вдумчиво не прочитаете все доки , ерраты и чужие примеры не посмотрите - не играйтесь с flash encryption и secure boot - окирпичите.

Ну вдруг кому интересно..

В P4 есть интересная возможность сконфигурировать память:

Можно сделать так: всю внутреннюю память отдать под L2 кэш, оставив 128кб или чуть больше для нутрянных нужд: обработчики прерываний там разместить, например. Код сидит на флешке. Все malloc()/new идут во внешнюю PSRAM.

Внешняя PSRAM обладает задержками - она висит на SPI шине. Hex spi, 240 MHz, но все же.

В чем фишка: RW данные лежат в PSRAM , т.е. должны подтормаживать. Код и RO данные лежат на флешке, которая на своей SPI шине ввисит - тоже не быстро.

Но.

Мы же сделали 512к кэш.

Внутрянняя память в ESP32 - это процессорный кэщ второго уровня. Быстрая память очень, т.к. расположена на том же кристалле, что и сам процессор. Процессор будет автоматически кэшировать все, что нужно и работать будет все быстро, как из обычной памяти.

По умолчанию P4 работает в другом режиме. У него 256кб отдано под L2 кэш из доступных 768кб. Это и под данные и под код - не шибко много, из-за чего на больших прошивках лагает.

Например, если взять обычный ESP32, то у него кэш данных - 32кб (может быть и 64, но в ардуино решили, что 32 - достаточно, и прибили гвоздями цифру 32). Если вы пробегаетесь по массиву (который лежит на флешке) длиной >32к, то лаганет - на границе 32кб произойдеь прерывание и кэш будет заполняться следубщими 32кб из флешки по SPI. Для рилтайма (обработка звука, logic analyzer) это неприемлемо.

А что скажете про прямой вывод картинки или видео по HDMI ? Какой формат видео потянет? Реально ли одновременно передавать контент по WiFi ( через есп32-с6) и выводить его на экран через основное ядро?

У него MIPI-DSI интерфейс. Да, можно и графику изображать и WIFI. Для HDMI придется еще конвертер припаять маленький.

Из-за того, что вся сеть крутится на другом процессоре - P4 остается свободным для всяких графических извращений

P4 имеет какие-то аппаратные декодеры для видео. Есть еще 2D акселератор, но я на него еще не смотрел

PS:

Посмотрите между делом на компоненты Espressif (это расширения ESP-IDF, библиотечки, которые не входя в ESP-IDF, но для него разработаны)

esp-dl – Deep Learning Library : это для AI. Во внутрях есть оптимизированная библиотека для всех их процессоров, на SIMD ассемблере: вектора, матрицы, дот-продакт , свертки и прочее сложение с насыщением и т.д и т.п. Полезное.

esp-dsp – Signal Processing (Kallman, FFT, куча разных других фильтров и прочего, все процессоры, на P4 , S3 - на SIMD assembler, на порядок быстрее Си-шной реализации, которая так же прилагается)

esp-adf – Audio Framework. Включая speech recognition (@Diskless вроде интересовался)

Уточнил:

ESP32P4 может кодировать\ декодировать JPEG на лету - 40 кадров в секунду на 1080, или 70 кадров на 720p.

Т.е. MJPEG, как видео - вполне пойдет.

Декодирование , правда, идет в YUV , а не в RGB. Но это тоже не проблема - если на выходе нужен именно RGB, то есть специадбная переферия там в процессоре, называется 2D-DMA: умеет на лету преобразовывать YUV->RGB . Т.е. построить быстрый конвеер обработки видео - можно

Спасибо, попробую разобраться. Пока нифига не понял :slight_smile: