本文へ
ハクソク

世界を動かす技術を、日本語で。

最新のESP32はLinuxを動作させることができ、Raspberry Piに近づいています

元記事: 原文(xda-developers.com)

概要

  • 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サポート拡充に期待

提供: ハクソク · 要約更新:

AIによる日本語要約です。内容は原文とあわせてご確認ください。

Hacker Newsの議論を読む

Hackerたちの意見

すべての機能や動画・音声出力を考えると、古いデバイスのソフトウェアエミュレーションには素晴らしいプラットフォームかもしれないね。40MHzのコアで駆動できるGPIOがたくさんあるし、他の2つはもっと高尚なことに使えるし。

└

これに関しては、コストを考えると素晴らしいプラットフォームだよ。すでにいくつかの良いESPベースのエミュレーターがあって、いろんなコンソールやZX Spectrumエミュレーター、さらには386エミュレーターもあるんだ。 https://github.com/foky26/Retro-Gamer https://github.com/EremusOne/ESPectrum https://github.com/hchunhui/tiny386 記事にあるような新しいチップはさらに能力が高いはず。486もすぐ手が届くようになるだろうね。大きな問題の一つは周辺機器のエミュレーションや複数のコントローラーの扱いなんだけど、USBと他のコアがこれを助けてくれるはず。

ああ、神は与え、神は奪う。P4はカメラアプリには十分な生の速度がなかったけど、MIPI CSIはあった。一方、S31は十分な速度があるけど、CSIがないんだよね。

└

これの仕様を初めて聞いたときの俺の反応そのもの。Espressifは不思議な方法で動いてるよね。

└

P4の「生の速度」がカメラアプリケーションに対して不足しているのは何が原因なの?(S31と比べて)

記事はMCUと何かの未公開SBCを混同しているみたいだね。見出しからしてそうなってきてる。

└

だから、俺はxda-developersのニュース部分は読まないんだ。彼らのスタッフは、xda-developersが知られていることにもかかわらず、基本的な技術的ミスをたくさん犯しているように見えるから。(ただ、xda-developersフォーラムも技術的な議論にはあまり向いてないけどね。2020年代に標準的なソフトウェアエンジニアリングの実践に従わず、フォーラムの投稿でバグを追跡したりリリースを発表したりするのは理解できないよ。)

家の自動化を追跡するために、部屋ごとにesp32を置いてるよ。初めてヘッダーをハンダ付けして、今はカスタムPCBボードを作ってる。ハロウィンの飾り付け用にフォグマシンも追加して、ただ楽しんでる。もっと強力なesp32があれば、今の数を減らして、コンセントとバッテリーの切り替えもできるようになると思う。

└

家の自動化を追跡するために、部屋ごとにesp32を置いてるよ。これがどういう意味なのか、ちょっと聞いてもいいかな?

└

「Bermudaは、どんなBluetoothデバイスでも追跡できるようにして、Home Assistantがそのデバイスが家の中のどこにあるか教えてくれるんだ。」

└

面白いね。健康追跡のために似たようなプロジェクトを始めたいな。つまり、ESP32デバイスにカメラをつけて、私たちが食べているものや歩いたり運動したりしているデータを見てフィードバックを提供するって感じ。これを始めるためのアドバイスはある?einkスクリーンとブラウザレンダリングの組み合わせがあれば最高だと思う。M5Stackのpaper s3を見たけど、カメラがついてないんだよね。

ESP32のブランドによるボードの性能差がどんどん広がってきてるね。「これをESP32で動かせるよ」って言われても、どれくらいのハードウェア投資が必要なのか、判断が難しい。

Hacker Newsで議論の続きを見る

同じ出典の記事