概要
- ESP32-S31 は、従来のマイコンを超える多彩な周辺機能を搭載
- ギガビットEthernet やUSB 2.0 High-Speedホストなど、SBC並みの機能性
- RISC-Vコアと本格的MMU を採用し、Linux動作も視野
- メモリ容量は最大64MB で、SBCと比べると制約あり
- 無線機能や低消費電力 も強み、今後の発展が期待される新世代ESP32
ESP32-S31の特徴と進化
- ギガビットEthernet MAC を搭載し、従来のESP32-P4の100Mbpsから大幅な性能向上
- 8P8C(RJ45)コネクタ対応、外部PHYとの接続にはRGMIIインターフェースを使用
- USB 2.0 High-Speed OTGコントローラー を搭載し、Type-Aソケットで最大500mA供給可能
- SDIOホストコントローラー (2スロット)、 DVPカメラインターフェース (8〜16bit対応)、 パラレルLCDコントローラー (24bit RGB/I8080/MOTO6800対応)を装備
- I2Sコントローラー(2基)、 Bluetoothオーディオ同期、 14チャネルの静電容量タッチ、 CAN FDコントローラー、 4基のMCPWMユニット を搭載
- 従来のマイコンを超える周辺機能 を持ち、SBCに近い使い勝手
CPUとメモリ構成
- 2基の32bit RISC-Vコア (最大320MHz動作、各コアにFPU搭載)
- 128bit SIMDデータパス (1コアのみ)、 独立した40MHz低消費電力コア も搭載
- L1命令キャッシュ32KB/コア、データキャッシュ64KB(共有)
- 最大64MBのPSRAM (8bit DDR、250MHz対応)、 最大256MBのフラッシュ サポート
- ESP32-S3ではPSRAMとフラッシュが共用だったが、S31で大幅強化
本格的なMMU搭載とLinux対応
- 従来のESP32シリーズでの「MMU」は簡易的なアドレス変換のみ
- S31ではRISC-Vの「Sv32二段ページテーブル方式」や「Machine/Supervisor/User特権モード」対応
- Linuxカーネルの実行が現実的に なり、BuildrootとU-BootベースのBSPも公開済み
- Linux 6.18や7.1の移植例 があり、ハードウェアドライバも充実
- LCD接続や有線Ethernet、マウス・キーボード利用 も可能で、まさにSBCに近い環境実現
メモリの制約とSBCとの差異
- オンチップSRAMは512KB、パッケージ内PSRAMは16MBまたは32MB
- 最大64MBまで拡張可能だが、DRAMコントローラーは非搭載
- SBCと比較するとメモリ容量が圧倒的に少ない
- Linuxカーネルはフラッシュから実行し、PSRAMの節約を図る設計
- GPUやNPUは非搭載、ビデオエンコードやMIPI対応もなく、2D描画支援のみ
- フルLinuxデスクトップ環境は非現実的、ただしターミナル利用は十分可能
無線機能・消費電力・その他の特徴
- 2.4GHz Wi-Fi 6、Bluetooth 5.4(LE/Classic BR/EDR)、802.15.4(Thread/Zigbee) を搭載
- Matter対応、Bluetooth Classicによる従来オーディオ機器との互換性
- Wi-Fi受信時110〜117mA、送信時最大265mA、モデムスリープ時91〜147mA の低消費電力
- SBC並みの周辺機能を持ちながら、マイコンらしい電力特性
製品名とドキュメントの現状
- 「S31」という名称はS3系の後継を想起させるが、実際は全く別設計
- Sシリーズは高機能SoCを指し、CPUアーキテクチャとは無関係
- コアはP4系由来で、S3の2倍近い性能
- データシートはバージョン0.5で「PRELIMINARY」表記があり、情報の更新が必要
- 公式BSPやドキュメントの整備は今後の課題
まとめと今後の展望
- ESP32-S31はSBCとマイコンの境界を大きく縮めた新世代SoC
- Linuxターミナルが動作するESP32は初の存在
- 現時点ではSBCの完全な代替には至らないが、今後の進化によりRaspberry Pi等の選択肢になり得る可能性
- 今後のドキュメント整備やLinuxサポート拡充に期待
すべての機能や動画・音声出力を考えると、古いデバイスのソフトウェアエミュレーションには素晴らしいプラットフォームかもしれないね。40MHzのコアで駆動できるGPIOがたくさんあるし、他の2つはもっと高尚なことに使えるし。