「ESP32-C3からESP32-C5へ変更したい。」
「ESP32-S3へ置き換えても、そのまま動く?」
ESP32シリーズを使っていると、このような場面に遭遇することがあります。
一見すると同じESP32シリーズなので、そのまま置き換えられそうに思えます。
しかし実際には、
「ESP32だからピン配置も同じだろう」
という考え方は非常に危険です。
私自身もESP32-C5を採用したCPUボードを設計する際、GPIOの配置や起動モードに関わるピンを何度も確認しました。
ESP32シリーズは機能が似ていても、GPIOの配置や利用できる周辺機能はシリーズごとに異なります。
また、同じGPIO番号であっても、
- USB
- JTAG
- 起動モード(Strapping Pins)
- ADC
など、役割が異なることも少なくありません。
この記事では、
ESP32-C3・ESP32-C5・ESP32-S3を中心に、
設計時に確認しておきたい接続ピンの違いと、置き換える際の注意点について解説します。
まず各シリーズの特徴を知りたい方は、こちらの記事をご覧ください。
「ESP32だから同じ」は危険
ESP32シリーズは同じ開発環境(ESP-IDF)で使用できるため、
「CPUだけ交換すれば動くだろう」
と思われることがあります。
しかし実際には、
CPUが変わることで
- GPIO数
- ピン配置
- USB機能
- JTAG
- ADC
- 起動ピン
などが変わる場合があります。
つまり、
ソフトウェアは移植できても、ハードウェアはそのまま使えない可能性がある
ということです。
特に自作基板では、この違いを理解していないと基板を作り直すことにもなりかねません。
まず確認したい3つのポイント
CPUを変更する前に、私が必ず確認する項目があります。
それは次の3つです。
① GPIO数
シリーズによって使用できるGPIO数が異なります。
そのため、
現在使用しているGPIO数を確認し、
変更後も十分足りるか確認することが重要です。
また、
GPIO番号が存在していても、
実際には入力専用だったり、
特殊機能が割り当てられている場合もあります。
データシートだけでなく、ピン配置図も確認することをおすすめします。
② 使用したい周辺機能
例えば、
- UART
- SPI
- I²C
- PWM
これらはGPIOマトリクスによって柔軟に変更できます。
しかし、
すべてのGPIOが自由に使えるわけではありません。
USBやJTAGと兼用されるピンもあります。
そのため、
どのGPIOへ割り付けるかを事前に決めておくことが重要です。
③ 起動モードに関わるGPIO
ESP32シリーズには、
起動モードを決定するGPIOがあります。
これらへ
LED
リレー
フォトカプラ
プルアップ・プルダウン
などを接続すると、
正常に起動しない場合があります。
自作基板では最も注意したいポイントの一つです。
ESP32-C3・C5・S3の違い
ここでは特徴を簡単に整理します。
| 項目 | ESP32-C3 | ESP32-C5 | ESP32-S3 |
|---|---|---|---|
| CPUアーキテクチャ | RISC-V | RISC-V | Xtensa LX7 |
| 主な特徴 | 低価格・低消費電力 | Wi-Fi 6対応 | AI・USB機能 |
| 無線規格 | Wi-Fi 4 / BLE 5 | Wi-Fi 6 / BLE 5 | Wi-Fi 4 / BLE 5 + Bluetooth Classic |
| 向いている用途 | IoT・量産機器 | 通信性能重視 | AI・画像処理・USB機器 |
ESP32-S3はUSB機能を活用した機器の開発にも適しています。
ESP32シリーズではチップごとにUSB機能の有無や利用方法が異なるため、CPUを変更する際は必ず対象デバイスのデータシートを確認することをおすすめします。
ESP32-C5はWi-Fi6が最大の特徴です。
つまり、
CPUを変更する場合は、
「何を追加したいのか」
を最初に決めることが重要になります。
GPIO番号だけでは判断できない
ここが初心者の方が最も勘違いしやすいポイントです。
例えば、
GPIO10
という番号が存在していても、
シリーズによって役割が異なる場合があります。
あるシリーズでは通常GPIOとして使用できても、
別のシリーズではUSBやJTAGなどの特殊機能を兼ねていることがあります。
そのため、
「GPIO番号が同じだから同じように使える」
とは考えない方が安全です。
私自身もCPUボードを設計する際は、
GPIO番号だけでなく、
ピンマップ
データシート
リファレンスマニュアル
を必ず確認しています。
この確認を省略すると、
後から基板を修正することになる可能性があります。
現場では「将来の拡張性」も考える
ここは、私が実際の設計で意識しているポイントです。
例えば、
UARTを1チャネルしか使わない場合でも、
将来的にデバッグUARTを追加する可能性があるなら、
あえて余裕を持ったGPIO配置にします。
また、
現在はLEDしか接続していなくても、
将来SPIデバイスを追加する可能性があるなら、
SPIに使いやすいGPIOを空けて設計することがあります。
つまり、
現在だけでなく、
将来の仕様変更まで考えてGPIOを割り付ける
ことが、製品開発では重要になります。
CPUを変更するときのチェックリスト
ESP32シリーズを別のシリーズへ置き換える場合、私は次の順番で確認しています。
① GPIOの使用状況を整理する
まず最初に行うのは、
「現在どのGPIOを何に使っているか」
を書き出すことです。
例えば、
| GPIO | 用途 |
|---|---|
| GPIO0 | BOOT |
| GPIO1 | UART |
| GPIO2 | LED |
| GPIO8 | SPI |
| GPIO9 | SPI |
このように一覧にしておくと、
CPU変更後もそのまま使えるのか確認しやすくなります。
実際の開発でも、この一覧表を最初に作るだけで移植作業がかなり楽になります。
② 起動に関係するGPIOを確認する
ESP32シリーズでは、
Strapping Pins(起動モードを決定するGPIO)
があります。
これらのGPIOへ
- 強いプルアップ
- 強いプルダウン
- リレー
- フォトカプラ
- 外部IC
などを接続すると、
正常に起動できなくなる場合があります。
私自身もESP32-C5のCPUボードを設計した際、この部分は何度もデータシートを確認しました。
特に自作基板では、
「空いているGPIOだから使おう」
ではなく、
「起動時にも安全なGPIOか」
を確認することが重要です。
③ 使用する周辺機能を確認する
UART
SPI
I²C
PWM
ADC
これらはESP32シリーズで広く利用できます。
しかし、
シリーズによって
利用しやすいGPIO
利用できないGPIO
特殊機能と兼用されるGPIO
が存在します。
設計後に変更すると基板修正につながるため、
最初の段階で整理しておくことをおすすめします。
④ ESP-IDFの設定も確認する
CPUを変更する場合、
ハードウェアだけではなく
ESP-IDF側の設定も変更する必要があります。
例えば、
- Target Device
- menuconfig
- Flashサイズ
- パーティション設定
などです。
CPUを変更したのに、
以前の設定が残ったままになっていると、
書き込みは成功しても正常に動作しないことがあります。
私がESP32-C5のCPUボードで考えたこと
現在、私はESP32-C5を採用したCPUボードを開発しています。
このCPUボードは、
一般的な開発キットとは少し考え方が異なります。
装置へ組み込むことを前提としているため、
USBコネクタやUSB-UART変換ICは搭載せず、
UART経由で書き込みやログ確認を行う構成としました。
そのため、
GPIOの選定では
「今使えるか」
だけではなく、
「将来も使いやすいか」
という視点も重視しています。
例えば、
現在はLEDしか接続していないGPIOでも、
将来的にSPIやUARTへ変更できるように、
できるだけ余裕を持った設計を意識しています。
このように、
CPUボードの設計では
現在の仕様だけでなく、将来の拡張性まで考慮することが重要だと考えています。
CPUを変更するときは「動けば良い」ではない
CPU変更では、
「プログラムが動いた」
だけでは十分ではありません。
製品として考えるなら、
- 将来の仕様変更
- 保守性
- 部品供給
- 量産性
まで考える必要があります。
私がCPUを選定するときも、
性能だけではなく、
これらを含めて判断しています。
その結果として、
ESP32-C5を採用した案件もあれば、
ESP32-C3を選んだ方が適していると判断する案件もあります。
CPUは、
「性能」ではなく「目的」で選ぶもの
という考え方は、シリーズ変更でも変わりません。
まとめ
ESP32シリーズは同じ開発環境で利用できるため、
簡単に置き換えられるように思われることがあります。
しかし実際には、
GPIOの配置
起動モード
周辺機能
ESP-IDFの設定
など、
確認すべきポイントは数多くあります。
特に製品開発では、
「今動くか」
だけではなく、
将来の拡張性や保守性まで考慮した設計
が重要になります。
私自身もESP32-C5を採用したCPUボードを設計する際には、
GPIOの役割や将来の機能追加を考えながら設計を進めました。
CPUを変更する際は、
データシートや技術資料を確認しながら、
一つずつ確認していくことをおすすめします。
この記事が、ESP32シリーズを使った製品開発や、自作基板の設計を行う方の参考になれば幸いです。
どのESP32シリーズを選ぶべきか迷っている方は、こちらの記事も参考にしてください。
技術は、経験から価値になる。
DLROW Design|現場エンジニア