レトロでハードな物語

レトロなゲーム機・マイコン・中古デバイスなどをArduinoやAVRで再活用する方法を模索しています。

ESP32-WROOM-32Eのスケッチ書き込み手順を少しだけ簡単にする

2023年12月06日 | 電子工作

秋月電子で購入できるESP32-WROOM-32E(秋月電子 AE-ESP32-WROOM-32E-MINI)はフラッシュ16Mで800円とお手ごろな値段です。

このボードはArduino IDEで開発ができるのですが、スケッチを書き込むためにはUSBシリアル変換モジュールが必要になります。今使っているAE-CH340E(秋月電子 AE-CH340E-TYPEC)は端子の並びが同じなのでそのままつなげることが出来ました。

ただしスケッチを書き込むには次の手順が必要です。

まずGPIO0ピンをLOWにしてDownload Bootモードにしてから、ENピンをLOWからHIGHにしてリセットします。スケッチの書き込みが開始された後にGPIO0ピンをHIGHにして通常のBootモードに戻しておきます。スケッチが書き終わったらENピンをLOWからHIGHにしてリセットすると書き込まれたプログラムが起動します。

ESP32-WROOM-32Eは書き込み時に基板上にあるENボタンとBOOTボタンを押して上記の操作を行う必要があります。覚えてしまえばなんということはないのですが、しばらく書き込み操作を行わないでいると、どちらのボタンを先に押してどちらを離すのか忘れてしまい再確認しなければならないのが煩わしいところです。この操作を自動化するための回路も公開されているのですが、AE-CH340Eには回路に必要なDTRが出力されていないのでそのまま利用することが出来ません。

そもそもボタン2つを同時に操作する点が問題なので、これをボタン1つにするだけで手順は簡単になります。

そこで書き込み時のボタンは1つにして、書き込み後にENボタンでリセットするという仕組みを作ることにしました。
これを実現する方法は色々あると思いますが、今回は低価格で小型AVRのATtiny13(秋月電子 ATTINY13A-PU)を使います。

むかし確か50円ほどで購入したと思うのですが、今では150円しますね。幾つか買ったうちの1つが使わずに余っていたので利用することにしました。たいして難しいことをするわけではないので、他のマイコンでも構いません。

Arduino IDE(2.2.1)でATtiny13を使うためにはボードマネージャに登録する必要があります。
メニュー"ファイル"から"基本設定"を選択し、"追加のボードマネージャのURL"に以下のURLを追加します。

https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json

サイドバーでボードマネージャを選択したら検索フィルタに"microcore"と入力します。

表示されるMicroCoreのボード情報をインストールしたらメニューの"ツール"→"ボード"で、"Microcore"→"ATtiny13"を選択します。"書き込み装置"は"Arduino as ISP"にします。書き込み装置については、こちらを参考にするといいでしょう。

ATtiny13とESP32は以下のようにつなぎます。タクトスイッチも1つ使います。ATtiny13のプルアップ抵抗(ここでは10KΩを使用)も忘れずに。

ATtiny13のスケッチはこちらです。

ButtonProg.ino

簡単なスケッチなので説明はいらないでしょう。

操作手順ですが、ESP32-WROOM-32Eのスケッチを書き込む前に(コンパイル前でも大丈夫でした)ATtiny13に接続したタクトスイッチのボタンを押します。上記の手順と違いボタンは押しっぱなしではなく、ちゃんと離してください。
書き込みが完了したらENボタンを押してリセットすると、ESP32に書き込まれたプログラムが実行されます。

ENボタンはESP32-WROOM-32Eのボード上のボタンを押してもいいのですが、別途タクトスイッチをつなげた方が操作しやすくなります。

これでボタン操作の確認を行なったり2本の指でボタンを押さえる必要もなくなり、手軽に書き込みを行えるようになりました。

ESP32シリーズのCPUを持つCore2 for AWSを持っているのですが、こちらはマイコンボードとしてみると比較的高価なので、検証の為に頻繁にスケッチ書き込みを行うのは少し気が引けます。でもESP32-WROOM-32Eは安価なのでガンガン書き込みしても気になりません。今後はこれで色々検証してからCore2に反映することになるでしょう。



最新の画像もっと見る

コメントを投稿