九州・福岡・東京ときどきIoT

21年間のはてなダイアリー&アメブロからの避難所

ESP32シリーズのPSRAM仕様比較

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

Wi-Fi 6対応。HP(High-Perf) SRAM 512KB + LP 16KB。

ESP32-H2

320 KB

Matter/Thread用。省電力重視。

ESP32-P4

768 KB

最大級。 Wi-Fiなしモデル。L2キャッシュメモリとして動作。

 

 

SRAMとPSRAMの使い分け

ESP32を扱う上で、この2種類のメモリの違いを理解しておくことは非常に重要です。

  • 内蔵SRAM (高速・小容量)
    • CPUと直接つながっており、極めて高速です。
    • リアルタイム性が求められる処理、スタック領域、頻繁に読み書きする変数はここを使います。
    • 容量が数百KBと小さいため、大きな画像データなどを置くとすぐに枯渇します。
  • PSRAM (中速・大容量)
    • SPIバスを介して接続されるため、内蔵SRAMより低速(約1/10程度の速度差が出ることもあります)です。
    • 数MB〜数十MBという巨大なメモリ空間を確保できます。
    • カメラの画像バッファ、MP3のデコード、Webサーバーの大きなコンテンツ保持などに適しています。

[!TIP] **「メモリが足りない」**というエラーが出た場合、それが内蔵SRAM(Heap)

     の不足なのか、PSRAMが有効になっていないだけなのかを切り分ける必要が

     あります。