
ESP32シリーズのチップによって、内蔵されている、あるいは外付けで対応可能なPSRAM(Pseudo-SRAM)の最大容量や接続インターフェースは異なります。
主要なシリーズごとのPSRAM仕様を一覧表にまとめました。
ESP32シリーズ PSRAM仕様一覧
|
シリーズ |
PSRAM対応状況 |
主な接続方式 |
最大認識容量 (目安) |
備考 |
|
ESP32 (無印) |
対応 |
SPI / QSPI |
4MB / 8MB |
初代モデル。外部チップとして接続。 |
|
ESP32-S2 |
対応 |
SPI / QSPI |
8MB |
シングルコア。USB機能内蔵。 |
|
ESP32-S3 |
対応 |
Octal SPI / QSPI |
8MB / 16MB / 32MB |
AI処理向け。高速なOctal接続に対応。 |
|
ESP32-C3 |
非対応 |
- |
- |
低価格・RISC-Vモデル。 |
|
ESP32-C6 |
非対応 |
- |
- |
Wi-Fi 6対応モデル。 |
|
ESP32-P4 |
対応 |
Octal SPI |
16MB ~ 128MB |
Wi-Fi非搭載・高性能マルチメディアモデル。 |
各シリーズの補足と注意点
- ESP32-S3 の優位性 S3シリーズは、従来の4線(QSPI)だけでなく**8線(Octal SPI)**での接続をサポートしています。これにより、画像処理や音声処理などの帯域を必要とする作業で非常に高いパフォーマンスを発揮します。
- 「認識容量」の壁 ハードウェア的に32MBなどの大容量PSRAMを搭載していても、ESP-IDFやArduino環境(MMUの制限)により、一度にアドレス空間にマップして直接アクセスできるのは4MB〜8MB程度になることが一般的です。それを超える容量を使用する場合は、バンク切り替え(Bank Switching)などの処理が必要になります。
- モジュール名の見分け方 Espressif純正モジュール(WROOM等)の場合、型番の末尾に「R」がついているものがPSRAM搭載モデルです。
- 例:ESP32-S3-WROOM-1-N16R8 → N16(Flash 16MB) / R8(PSRAM 8MB)
先ほどの一覧表は「外付けまたは追加できるPSRAM」に焦点を当てたものでしたが、
チップ内部にはプログラムの実行やデータ保持に必須の高速なSRAMが必ず内蔵されています。
主要シリーズの内蔵SRAM容量をまとめました。
ESP32シリーズ 内蔵SRAM容量一覧
|
シリーズ |
内蔵SRAM合計 |
内訳・特徴 |
|
ESP32 (無印) |
520 KB |
最も標準的。RTC用スローメモリ等を含む。 |
|
ESP32-S2 |
320 KB |
S3より少なめ。シングルコア向けに最適化。 |
|
ESP32-S3 |
512 KB |
高速なアクセスが可能。AI命令用にも使用。 |
|
ESP32-C3 |
400 KB |
低価格RISC-Vモデル。バランス型。 |
|
ESP32-C6 |
512 KB |
|
|
ESP32-H2 |
320 KB |
Matter/Thread用。省電力重視。 |
|
ESP32-P4 |
768 KB |
SRAMとPSRAMの使い分け
ESP32を扱う上で、この2種類のメモリの違いを理解しておくことは非常に重要です。
- 内蔵SRAM (高速・小容量)
- CPUと直接つながっており、極めて高速です。
- リアルタイム性が求められる処理、スタック領域、頻繁に読み書きする変数はここを使います。
- 容量が数百KBと小さいため、大きな画像データなどを置くとすぐに枯渇します。
- PSRAM (中速・大容量)
- SPIバスを介して接続されるため、内蔵SRAMより低速(約1/10程度の速度差が出ることもあります)です。
- 数MB〜数十MBという巨大なメモリ空間を確保できます。
- カメラの画像バッファ、MP3のデコード、Webサーバーの大きなコンテンツ保持などに適しています。
[!TIP] **「メモリが足りない」**というエラーが出た場合、それが内蔵SRAM(Heap)
の不足なのか、PSRAMが有効になっていないだけなのかを切り分ける必要が
あります。