0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ESP32 のダウンロードモード自動切替回路のしくみ

Posted at

ESP32 のダウンロードモード自動切替回路のしくみ

ESP32 を通常起動(リセットのみ)/ダウンロードモード(ブートローダー起動)へ自動で切り替える回路について解説します。短押し/長押しで以下の2段階動作を実現しています。

回路図(抜粋)

image.png
image.png


動作概要

  1. 短押し(≲50 ms)

    • EN ピン が瞬間的に LOW → ESP32 がリセット
    • GPIO0 は HIGH のまま → 「通常起動」
  2. 長押し(≳50 ms)

    • EN ピン が LOW → リセット開始
    • RC タイマーがタイムアウト → 比較器が出力を LOW に
    • GPIO0 が LOW に引き下げられる → 「ダウンロードモード起動」

回路構成要素と役割

部分 回路構成 役割
EN ワンショット回路 R7(10 kΩ)+C23(1 µF) 短押しで EN を瞬時に LOW にし、リセットをかける
信号分離ダイオード D6(1N4148) EN 側と BOOT 側の RC ネットワークを相互干渉なく OR 結合
BOOT 遅延回路 R8(680 kΩ)+C18(10 µF)+D7(1N4148) 長押し検知用の RC タイミングと放電パス
比較器 U5(GS321) +/– 端子で約 VDD/2(1.65 V)を比較し、出力をデジタル切替
基準電圧分圧 R13=R14(各10 kΩ) 比較器の – 端子に与える基準電圧(VDD/2)を生成
GPIO0 プルダウン U5 出力 → GPIO0 比較器出力が LOW のとき GPIO0 を GND へ引き下げ

動作フロー

  1. ボタン押下直後(短押し)

    • D6 経由で C23 が放電 → EN ピン LOW → ESP32 リセット
    • C18 はまだ十分に放電されず +端子 > Vref → 比較器出力は HIGH → GPIO0 = HIGH
  2. 長押し検知後

    • R8+C18 の RC 時定数(約 50 ms)で +端子電圧が Vref 以下に
    • 比較器出力が LOW → GPIO0 が GND へ
    • EN と GPIO0 が同時に LOW → ブートローダーモードで起動

短押し vs. 長押しの違い

  • 短押し: リセットのみ
  • 長押し: リセット + GPIO0=LOW → ダウンロードモード

この回路により、ユーザはボタンの押し分けを意識せずとも確実にブートローダーモードへ入れます。

参考

コメント

  • GPTに解説してもらっています
0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?