動機
今までdevkit-cで我慢していたが16MBに惹かれてで 32E 単品(¥360)を買ってしまったので書き込み回路を用意する必要がでてきた
そもそも3.3VのUSB→シリアルがあまり売っていないしどれも高いし自動書き込みも欲しかったので作ることにした
シリアル変換ic
必要条件は
- 3.3V対応
- 自動書き込み回路で使うDTRとRTS端子があること
の2つ
(自動書き込み回路については調べればたくさん出てくるので割愛)
手始めに秋月さんでいつも通り安い順にして下から当たっていく
するとCH340E, CH340Nに続いて3番目にCH340Kが出てくる
EとNはDTR端子が無いがKはある
データシートを見るとコンデンサ2つを繋ぐだけで使えてしまうようである
便利便利
とりあえず買う
ところで信号のHighの出力電圧はVcc(5.0V)-0.5=4.5Vらしいんですけど
データシートでは5Vも3.3Vも2.5Vも1.8Vでも通信できちゃうんだぜどや
って言ってて逆流防止のダイオードがあるとはいえ中の人まだ理解できていない
つまり恐らくリセットピンとしてDTRを引き出せば5VなArduinoも書き込める……?
その他部品
CH340K(¥70)に加えて
を使った
合計はなんと¥150.5
0.1uFは2個でも良いが安定化のためにGND-EN間に入れると良いらしいので入れた
回路
結果から言うとこの回路で正常に動作した
出力はTXD→RXD,RXD→TXDそれ以外はそのままESP側の同じシルクの端子に繋ぐ
使うにはESPに電源が供給されていてENはプルアップされている必要がある
データシートを読んで分かったことそのままである
V3はコンデンサを挟んでGNDに繋ぐことで3.3V出力にする端子らしい
電源に挟む0.1uFをケチるとPCが壊れたUSBだって言い張ってくるので注意
試作
電源の0.1uFをケチって動かなかったのでダメ元で繋いでみたら動いた
書き込んで動作させた様子
写真左上のUSBがそれ
本番
青が表面の部品白が裏面の部品
鉛筆はUEWの配線
どうせジャンパ線で繋ぐので近い順に引き出した
足を折らないように注意して曲げる
USBは4本のピン以外切って半田で固定した
完成品
1.5Mbps
[2022/5/27 追記]2Mbpsの挙動がだいぶ怪しかった(個体差?)ので1.5Mbpsに下げました
Arduino IDEのCtrl+,で設定を開いて下にある詳細設定のリンクを押してアプリのフォルダを開く
適当に漁って packages\esp32\hardware\esp32...\boards.txt にたどり着いたらそれらしいところに
esp32.menu.UploadSpeed.1500000=1.5M (CH340K)
esp32.menu.UploadSpeed.1500000.upload.speed=1500000
を追記
Arduino IDEを起動するとメニューに項目が増えているのでそれを選択してやると1.5Mbpsで書き込むようになる
ESP側のRXをプルアップすれば2, 3Mbpsも行けるらしい
おしまい
ESP単体(¥360)+これ(¥150.5)=¥515.5
Devkitの¥1280が高く見えるようになった