LoginSignup
0
0

ESP32 DevKit などでは、Arduino 環境から書き込みを行うと自動でリセット&書き込みモードとなり、書き込みが終わると再度リセットとなり通常モードに戻る。
調べると、シリアル信号の DTR 信号を使ってリセット信号、RTS 信号を使って書き込みモードにしているらしい。

https://ja.wikipedia.org/wiki/RS-232 より:
image.png

オレオレ ESP32 基板でも同じようにできないかな?

USB シリアルモジュール

いつも使っている CP2102モジュール。このモジュールは DTR 端子が出ている。RTS 信号も出ているのだけどピンが立ってない。

IMG_20200218_102556.jpg

書き込みモードにするのは以下のように手動スイッチをつけるとして、

image.png

リセットを、この CP2102 モジュールの DTR 信号を使って自動でできないかな?

試しにこのように回路を作ってみました。

image.png

元々、ESP32 用の遅延起動信号発生回路をこのように組んでました。

image.png

ここに DTR を直結しただけです。ちゃんとした回路にするには 1kΩ ぐらいの抵抗を噛ませたほうがいいでしょうね。

この状態で書き込んでみました。

DS1Z_QuickPrint1.png

黄色がDTR信号、水色がESP32_EN信号です。この回路だと2箇所で測っている意味はないですが。

あらかじめ SW4 を押しておき、書き込みが開始されたら SW4 を離すようにします。
波形の通り、書き込みが開始されたら2回のLoパルスが出ています。 書き込み終了時にはパルスが出ていませんが、リセットがかかります。恐らくソフトウェアリセットが効いているのでしょう。

うまく遅延回路とか作ってやれば、DTR信号のみで書き込みモードにもできそうですね。

0
0
0

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