ブログ
ESP32のスペック:ピン、コア、限界値
みんなが知りたい数字を集めました。コア数、ピン数、GPIO、I2Cの接続台数、ESP32に印加できる電圧。データシートに書かれていない注意点も添えて。
ESP32のコア数はいくつ?
クラシックなESP32(WROOM-32)は、240MHzのXtensaコアを2つ搭載しています。S3も2つ(より高速なLX7コア)、C3、C6、H2はRISC-Vコアが1つ、P4は2つです。つまり「ESP32のコア数」は、どのESP32の話かによって変わります。「ESP32」という名前は1つのチップではなく、ファミリー名なのです。
ESP32のピン数はいくつ?
WROOM-32モジュールは38個のパッドを出していますが、手元の開発ボードはクローン製品によって30ピンまたは38ピンとまちまちです。どちらも同じチップで、30ピン版は一部のパッドが未接続になっているだけです。つまりピン数は形状によって異なり、チップは48パッド、モジュールは38、ボードは30または38、というわけです。
ESP32のGPIOピンはいくつ?
クラシックなWROOM-32では34本です。ただし自由に使えるのは約25本で、6本はフラッシュチップ用、GPIO 34〜39は入力専用、さらにWROVERモジュールでは数本がPSRAMと競合します。現実的な予算は25〜28ピンです。S3とC3はまた違うので、「GPIOは何本か」への答えは「どのチップか」から始めるべきです。
ESP32のデジタルピンはいくつ?
34本すべてのGPIOがデジタル対応です。それがGPIOというものなので、上の質問と同じ数になります。34本から、フラッシュ用の6本と入力専用の4本を除いた分です。このうち18本は2つのADCユニットでアナログ入力もでき、どのピンもLEDC経由でPWM出力できます。公式の注意点が1つ、Wi-Fi送信中はADC2ユニットが動作しなくなります。
ESP32にI2Cデバイスは何台接続できる?
決まった数はありません。I2Cはバスであり、上限は論理ではなく電気的なものです。アドレスは127個存在しますが、配線やプルアップ抵抗、容量による実負荷で、実際は10〜20台のセンサーが現実的な上限です。ESP32にはI2Cコントローラーが2系統あり、GPIOマトリックスでほぼどのピンにも割り当てられます。公式ドキュメントはここが曖昧なので、実際に接続して確かめるのが一番です。
ESP32は何ボルトまで対応?
チップ自体は厳格で、どのピンも3.0〜3.6Vまで。それ以上はダメです。周りの基板はもう少し寛容で、VINはすべての開発キットで5Vを受け付けます(USBが供給する電圧だからです)。レギュレーターによっては12Vまで耐えますが、これはメーカー次第で、私なら6Vを超えて入れません。GPIOに5Vを入れてはいけません。定番の基板壊しです。一言でまとめると、ロジックは3.3V、VINには5V、それ以外はやめよう、です。
RAMとフラッシュはどのくらい?
標準のWROOM-32では、520KBのSRAMと4MBのフラッシュ。フラッシュにはプログラムとファイルの両方が入ります。WROVERモジュールやS3の一部にはPSRAM(2〜8MB)が追加され、カメラのフレームのような大きなバッファを扱えます。240MHzのデュアルコアなら、520KBでもほとんどのIoT用途には十分です。TLS、カメラ、Webサーバーを全部重ねたときにだけ、限界を感じるでしょう。完全なスペックはナレッジベースにあります。
ESP32のタイマーはいくつ?
クラシックなチップには64ビットのハードウェアタイマーが4つ。コアごとのシステムタイマーと、ディープスリープ中も動き続ける省電力のRTCタイマーも付いています。PWM用のLEDCペリフェラルは16チャンネルで、その上にFreeRTOSのソフトウェアタイマーが重なります。タイマーが足りなくなるより、先に他のペリフェラルが足りなくなるはずです。
ESP32の最高動作周波数は?
クラシックとS3は240MHz、C3は160MHzです。省電力のために落とすこともでき、80MHzまでなら、バリアントによっては10MHzまで下げられます。240MHz超のオーバークロックは、当たりのシリコンなら動きますが、実利の割に発熱が増えます。私のC3は160MHzで文句なく動いていますが、安価な基板での不安定さを報告する声も見かけます。
この記事のテーマのプロジェクトは、sensbench の無料シミュレーターでそのまま実行できます。回路は配線済み、ファームウェア同梱、アカウントもインストールも不要です。