ESP32関係のI/Oの注意点まとめ

No Image

ESP32関係はGPIOとして出ているものの使い方を間違うと書き込みができなかったり、うまく動かなくなることがあります。
また、GPIOマトリクス機能があって様々な機能を割り当てられますが、それに該当しない専用ピンがあったりします。
ESP32もシリーズが増えてきて混乱してきましたので、少しまとめたいと思います。
専用ピンは個人的によく使うところをまとめています、UART (TXD0/RXD0) やADCなどは省いています。

スポンサーリンク

ESP32

ESP32と一般的にいわれるのはモジュールとしてはESP32-WROOM-32Eです。
無印のESP32-WROOM-32からDがついてEになりました。
最初から使用感は変わってませんが、ちゃんと使われ続けています。

起動や書き込みに関わるピン

GPIO 使用時の状態
IO0 通常時:HIGH or 未接続
書き込み時:LOW
IO2 通常時:影響なし
書き込み時:LOW or 未接続
IO5 HIGH or 未接続
IO12 LOW or 未接続
IO15 HIGH or 未接続

IO0やIO2はよく知っていますが、IO12やIO15も起動時の状態によってはうまく動かないので注意です。

専用ピン

GPIO ピンの説明
IO6~10 使用不可(内蔵フラッシュと接続)
IO34 入力専用(内部プルアップ不可)
IO35 入力専用(内部プルアップ不可)
IO36 入力専用(内部プルアップ不可)
IO39 入力専用(内部プルアップ不可)

IO6~10はピンとしては出ていますが使えません。
IO34~39も入力専用なので使いにくいです、内部プルアップもできません。

ESP32-C3

シンプルで小型です。
小規模なものに最適なのがESP32-C3です。
もちろんWi-FiやBluetoothも使えるので重宝します。

起動や書き込みに関わるピン

GPIO 使用時の状態
IO2 HIGH
IO8 通常時:影響なし
書き込み時:HIGH
IO9 通常時:HIGH or 未接続
書き込み時:LOW

ESP32のIO0に相当するのがIO9です。
IO2に相当するのがIO8ですが、極性は逆です。
IO2は通常起動時と書き込み時のどちらもHIGHにしろと書かれていて、IOとしては使いづらいです。
プルアップ状態でも問題なく使えるなら支障は出ないでしょう。

専用ピン

GPIO ピンの説明
IO11~17 使用不可(内蔵フラッシュと接続)
IO18 USB D-
IO19 USB D+
IO20 U0RXD (Serial)
IO21 U0TXD (Serial)

IO18とIO19は直接USBで接続できるピンです。
専用ピンに記載しましたが、GPIOとしても使えます。
IO11~17はモジュールであれば引き出されていませんので、そもそも使うことができません。
IO20,21はプログラム書き込み用のUARTを兼ねていますが、USBからでも書き込みできるので普通のIOとして使っても問題になることはないでしょう。

ESP32-S2

ESP32-S2はS3が出てきたことでだいぶマイナーです。
性能もS3のがいいのでぶっちゃけ使う機会はあまりないです。

起動や書き込みに関わるピン

GPIO 使用時の状態
IO0 通常時:HIGH or 未接続
書き込み時:LOW
IO45 LOW or 未接続
IO46 通常時:影響なし
書き込み時:LOW or 未接続

ESP32のIO0がそのまま継承されています。
IO2に相当するのがIO46ですが、極性は逆です。
IO45はESP32ではIO12に相当します。

専用ピン

GPIO ピンの説明
IO19 USB D-
IO20 USB D+

IO19とIO20は直接USBで接続できるピンです。
専用ピンに記載しましたが、GPIOとしても使えます。

ESP32-S3

ESP32の正統進化系だと思っています。
ただ、有線LANのインターフェースはなくなってしまいました。

起動や書き込みに関わるピン

GPIO 使用時の状態
IO0 通常時:HIGH or 未接続
書き込み時:LOW
IO45 LOW or 未接続
IO46 通常時:影響なし
書き込み時:LOW or 未接続

ESP32-S2と同じです。

専用ピン

GPIO ピンの説明
IO3 使用不可(JTAG信号)
IO19 USB D-
IO20 USB D+

IO3はモジュールであれば引き出されていませんので、そもそも使うことができません。
ESP32-S3と同様で、IO19とIO20は直接USBで接続できるピンです。

ESP32-C6

ZigbeeやWi-Fi6が使えます。
使ったことはありません...

起動や書き込みに関わるピン

GPIO 使用時の状態
IO8 通常時:影響なし
書き込み時:HIGH
IO9 通常時:HIGH or 未接続
書き込み時:LOW

ESP32-C3によく似ていてIO2が普通に使えるようになりました。

専用ピン

GPIO ピンの説明
IO12 USB D-
IO13 USB D+

今後はペリフェラルとしてUSBは標準搭載になりそうですね。

ESP32-H2

ZigbeeやWi-Fiが使えて、省電力向けらしいです。
こちらもまだ使ったことはありません...

起動や書き込みに関わるピン

GPIO 使用時の状態
IO8 通常時:影響なし
書き込み時:HIGH
IO9 通常時:HIGH or 未接続
書き込み時:LOW

ESP32-C6と同じでIO8とIO9が起動に関わります。

専用ピン

GPIO ピンの説明
IO26 USB D-
IO27 USB D+

まとめてみるとESP32の制限が多いくらいで他はだいぶ改善されていること感じます。
ESP8266はもっと制限があったのでだいぶマシになりました。

ESP32関係のI/Oの注意点まとめ

スポンサーリンク

Leave a Comment