ESP32 ソフトウェア 回路設計

ESP32 Strapping Pins(ストラッピングピン)とは?起動モードと設計時の注意点を徹底解説

投稿日:

ESP32で自作基板を設計したり、ESP-IDFやArduino IDEで開発を始めたりすると、「Strapping Pins(ストラッピングピン)」という言葉を目にすることがあります。

「GPIO0をLOWにすると書き込みモードになる」
「LEDを接続したら起動しなくなった」
「基板を作ったら正常に起動しない」

このようなトラブルの多くは、Strapping Pinsの仕組みを理解することで防ぐことができます。

この記事では、Strapping Pinsの役割から起動モードの仕組み、設計時の注意点、そして実際によくあるトラブルまで、現役組み込みエンジニアの視点で分かりやすく解説します。

Strapping Pins(ストラッピングピン)とは?

Strapping Pinsとは、ESP32が電源投入時またはリセット解除時に読み込む特別なGPIOのことです。

ESP32は起動直後にこれらのGPIOの電圧レベルを読み取り、その結果によって起動方法(Boot Mode)を決定します。

例えば、

  • Flashメモリから通常起動する
  • ダウンロードモード(書き込みモード)で起動する

といった動作が、このタイミングで決まります。

重要なのは、Strapping Pinsは起動時だけ特別な役割を持つということです。

起動モードが決定した後は、多くの場合通常のGPIOとして利用できます。

つまり、

という理解で問題ありません。

なぜStrapping Pinsが必要なのか

ESP32にはさまざまな起動方法があります。

例えば、

  • ユーザーアプリケーションを起動する
  • ファームウェアを書き換える
  • デバッグを行う

これらを毎回ソフトウェアだけで切り替えることはできません。

そのため、CPUは起動直後にGPIOの状態を確認し、どのモードで起動するかを判断しています。

PCでいうBIOS設定やブートメニューに近い役割と考えると分かりやすいでしょう。

Strapping Pinsはいつ読み込まれる?

Strapping Pinsは、起動中ずっと監視されているわけではありません。

読み込まれるのは、

  • 電源投入時
  • リセット解除直後

の非常に短い時間だけです。

このタイミングでGPIOの状態を読み取り、Boot Modeが決定されます。

その後にGPIO0をHIGHやLOWへ変更しても、起動モードは変わりません。

この仕様を理解していないと、

「GPIO0を変更したのに動作が変わらない」

という疑問につながります。

代表的なStrapping Pins

ESP32シリーズには複数のStrapping Pinsがあります。

ただし、使用されるGPIOや機能はシリーズによって異なるため、詳細は必ず対象デバイスのデータシートを確認してください。

特に有名なのがGPIO0です。

GPIO0はダウンロードモードへの切り替えに利用されることが多く、自作基板では最も意識するGPIOの一つです。

設計時に注意するポイント

1.外付け回路の影響を考える

LEDやMOSFET、センサ、他のマイコンなどをStrapping Pinsへ接続すると、起動時の電圧レベルが変化することがあります。

その結果、

  • 起動しない
  • 書き込みモードへ入れない
  • リセットを繰り返す

といった現象が発生することがあります。

そのため、Strapping Pinsへ接続する回路は十分に検討する必要があります。

2.Pull-up・Pull-down抵抗を適切に選ぶ

起動時のGPIOレベルを安定させるために、適切なPull-upまたはPull-down抵抗を配置します。

抵抗値はデバイスや回路構成によって異なるため、リファレンス回路やデータシートを参考に設計してください。

3.起動波形も確認する

回路図だけでは問題が見つからない場合があります。

オシロスコープで、

  • 電源立ち上がり
  • EN信号
  • Strapping Pinsの電圧

を確認すると、原因を特定しやすくなります。

私も自作基板では、完成後に必ず起動波形を確認しています。

よくあるトラブル事例

Strapping Pinsに関するトラブルは、ESP32初心者だけでなく、自作基板を設計する経験者でも発生します。

ここでは、実際によくある事例を紹介します。

GPIO0をLOWにしたままにしてしまった

GPIO0はDownload Modeへ切り替えるために使用される代表的なStrapping Pinです。

そのため、GPIO0が起動時にLOWになっていると、Flashメモリからアプリケーションを起動せず、書き込み待機状態になります。

「プログラムは正常に書き込めたのに動かない」

という場合は、GPIO0の状態を確認してみましょう。

LEDを接続したら起動しなくなった

Strapping PinsへLEDやフォトカプラ、トランジスタなどを直接接続すると、起動時の電圧レベルが変化することがあります。

特に、

  • LEDをGND側へ接続している
  • 外部回路がGPIOを引き下げている
  • 他のICが起動直後にGPIOを駆動している

といった構成では、CPUが意図しないBoot Modeを選択する可能性があります。

「LEDを付けただけなのに起動しなくなった」という現象は、この影響によるものが少なくありません。

シリーズによってStrapping Pinsは異なる

ESP32には、

  • ESP32
  • ESP32-S2
  • ESP32-S3
  • ESP32-C3
  • ESP32-C5
  • ESP32-C6

など多くのシリーズがあります。

GPIO0は多くのシリーズで共通して重要な役割を持っていますが、それ以外のStrapping Pinsや機能はデバイスによって異なります。

そのため、インターネットの記事をそのまま参考にするのではなく、必ず使用するデバイスのデータシートを確認することが重要です。

Strapping Pinsを設計するときのチェックリスト

最後に、自作基板を設計する際に確認したいポイントをまとめます。

  • □ Strapping Pinsへ外付け回路を接続していないか
  • □ 起動時にGPIOレベルが変化しないか
  • □ Pull-up・Pull-down抵抗は適切か
  • □ リファレンス回路と大きく異なる構成になっていないか
  • □ オシロスコープで起動波形を確認したか
  • □ 使用するESP32シリーズのデータシートを確認したか

これらを確認するだけでも、多くの起動トラブルを未然に防ぐことができます。

まとめ

Strapping Pinsは、ESP32が起動する瞬間だけ重要な役割を持つGPIOです。

起動時にGPIOの状態を読み取り、その結果によって通常起動やDownload ModeなどのBoot Modeが決定されます。

一度Boot Modeが決定すると、その後は多くの場合通常のGPIOとして利用できます。そのため、「起動時だけ特別なGPIO」と理解しておくと分かりやすいでしょう。

また、自作基板ではStrapping Pinsへ接続する外付け回路が起動に影響することがあります。LEDやフォトカプラ、トランジスタなどを接続する際は、リファレンス回路やデータシートを参考にしながら設計を進めることが重要です。

Strapping Pinsの仕組みを理解しておけば、「書き込めたのに起動しない」「Download Modeから抜けられない」といった代表的なトラブルの多くを回避できます。

ESP32シリーズについてさらに詳しく知りたい方は、こちらの記事もご覧ください。

技術は、経験から価値になる。

DLROW Design | 現場エンジニア

スポンサーリンク

スポンサーリンク

-ESP32, ソフトウェア, 回路設計

Copyright© 江藤良樹の仕事は物づくり , 2026 All Rights Reserved.