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はもっと制限があったのでだいぶマシになりました。
スポンサーリンク
Leave a Comment