ESP-IDFを使ってみる

ESP32-P4開発ボード

Espressif Systemsから2023年1月5日に、こちらの 公式アナウンスが公開されました。
最大 400MHz で動作するデュアルコア RISC-V CPUを搭載しています。
ブロック図を見てもEthernetは有りますが、WiFiやBluetoothが有りません。
WiFiを使いたいときはESP-Hosted または ESP-AT を使用するみたいです。
ESP-Hosted というのは、RaspberryPiとESP32をSPIやUARTで接続して、ESP32のWiFi/Bluetooth機能を、 RaspberryPiから使用する機能で、こちらに公開されています。
わざわざESP32を使わなくても、USBのWiFiドングルやUSBのBluetoothドングルで十分だと思いますが...

216MHzで動作するシングルコアのSTM32F7(3000円ぐらい)、480MHzで動作するシングルコアのSTM32H7(5000円 ぐらい)と比べて価格、性能が 気になります。
まだデータシートが公開されていないので、これ以上詳しいことは分かりません。



esp-idf v5.2のターゲットには既にesp32p4が追加されています。
$ idf.py set-target
Usage: idf.py set-target [OPTIONS] {esp32|esp32s2|esp32c3|esp32s3|esp32c2|esp32c6|esp32h2|linux|esp32p4}
Try 'idf.py set-target --help' for help.

Error: Missing argument '{esp32|esp32s2|esp32c3|esp32s3|esp32c2|esp32c6|esp32h2|linux|esp32p4}'. Choose from:
        esp32,
        esp32s2,
        esp32c3,
        esp32s3,
        esp32c2,
        esp32c6,
        esp32h2,
        linux,
        esp32p4



こ ちらのESP32の一覧では、2024年10月時点で、ESP32-P4のサンプル出荷が始まっています。
さすがにチップサイズは10x10と、他のESP32シリーズの倍程度の大きさになっています。
2025年中には開発ボードが入手できると思います。



こ ちらに olimexのESP32-P4製品紹介が公開されています。
Ethernetポートを装備した製品が16ユーロなので、2600円ぐらいになります。
Ethernetポートと、4組のUSBポートを装備した製品が25.95ユーロなので、4600円ぐらいです。



2026年4月に、ようやくESP32-P4の開発ボードを入手しました。
AliExpressで$12.74+送料($4.42)の合計$17.15でした。
円安の昨今なので日本円にすると2700円ぐらいになります。
思っていたよりも安かったので思わず購入してしまいました。


裏側にSoCがマウントされています。さすがにSoCは大きいです。


製品ページはこちらに、回路図 はこ ちらに公開されています。
周辺機器に関する情報がこ ちらに公開されています。

まずはこ ちらの公式サンプルをビルドしてみましたが、エラーになります。


このボードで使われているSoCのチップリビジョンはV1.3です。
2026年5月時点で、ESP32P4にはV1.XのSoCとV3.XのSoCの2種類が有ります。
チップリビジョンがV1.XのSoCは最大360MHz、V3.XのSoCは最大400MHzのクロック周波数となっています。
チップリビジョンがV1.XのSoCを使う場合、menuconfigで以下を変更する必要が有ります。


こ ちらのEthernetのサンプルを使ってみました。
menuconfigで以下を設定します。


Ethernetケーブルを接続してビルドすると、DHCP経由でIPアドレスを取得します。


この開発ボードは裏側にSDカードスロットがマウントされています。
回路図を見るとI/FはSDMMCです。


こ ちらのsdmmcのサンプルを使ってみました。
menuconfigで以下を設定します。


マイクロSDカードをカードスロットに装着してビルドすると、SDカードをマウントすることが出来ました。


このボードにはDSIとCSIのI/Fも搭載されていますが、接続できるデバイスを持っていないので試すことができません。

このボードで使われているSoCはESP32-P4NRW32です。
データシートによると32MBのPSRAMを内蔵しています。
menuconfigでPSRAMを有効にすると、確かに32MBのPSRAMが有効になります。


ESP32やESP32SシリーズではPSRAMが有っても、HEAPサイズが4000Kしか増えない制限が有りましたが、
ESP32P4ではこの制限がなくなり、PSRAMサイズ全体をHEAPとして使うことが出来るようになっています。
こちらが8MBのPSRAMを持っているESP32の結果です。
HEAPは4MBしか増えません。


こちらが32MBのPSRAMを持っているESP32P4の結果です。
HEAPが32MBになっています。


続く....