2021年5月15日土曜日

ESP32-CAMにCH340Kを乗っけて自動書き込みしてみた。

 先日購入したCH340Kだけど、普通に使えそうだったのでESP32-CAMに直接実装してみた。ついでにArduino IDEから書き込みが楽なように自動書き込み回路も組み込んでみた。せっかくDTRとRSTがあるCH340Kを使うんだからオートリセットしないとね!

自動書き込み回路はよくあるトランジスタ2つを使ったタイプにしてみた。トランジスタはSOT-23な適当なやつを使ってみた。MMBT3904あたりだった気が。

ちなみにESP32-CAMに搭載されていたESP-32SはESP-WROOM-32に交換し、技適対応済み。

WiFi WebCam
ESP32-CAM、IO0はちゃんとピンとして出てるのにRSTがスイッチしか無い。それならピンヘッダいらないかも。ということで外してある。ケースに入れるとき邪魔だし。とりあえずIO0のところにトランジスタを一つ。
ESP32-CAM
そんでもってESP32-WROOM-32が乗ってる側にはてんこ盛り。リセットスイッチの直下にトランジスタを配置し、CH340KはPSRAMの上に乗っけてみた。厚みはESP32-WROOM-32と同じぐらいの厚みになるのでケースにも入れやすい。RSTのコンデンサはもうすでに実装されていたので、取り付けたのはトランジスタ2つと抵抗10k2つとCH340Kのみ。
DTRとRTSは自動書き込み回路に、TXはU0R、RXはU0Tに直結。使わないピンはCTSだけかな。

前回のテストでもIOのレベルはVCCと同じになるっぽかったので、CH340Kは3.3V駆動にしてある。VCCとV3を直結してESP32-CAMの3.3Vに接続した。
ホントはパスコンつけるべきだったんだけど忘れていた…
動いたので良し…
このパッケージ、ピン数が少ないのでこんな感じで手ハンダするのに便利~

ESP32-CAM
前に作ってもらったケースにそのまま収まった。

とりあえずArduino IDEで書き込み確認してみた。
Arduino IDEのBaudrate選択を一番早いのにしてもちゃんとオートリセットで書き込めるー
これは便利だ。ちなみにCH340K自体は2Mbpsまで対応らしい。
ケースに入れてしまうとOTAでしかファームウェア更新できないし、たまにシリアルコンソールで見たい時があったのでこれでだいぶ便利になった。特にESP32-CAMは書き込みボタンが無いのでIO0をGNDに落とすの面倒だったし。
これならファーム書き換えたあとにそのままリセットもできる!そして小型!

ESP32-CAM自体が送料込みで4.48ドルだったのでESP32-WROOM-32を載せた時点でESP32のほうが高い…
ESP32-WROOM-32Dだと330円だからまだいいかも。ちなみにESP32-WROOM-32Eは16MBにそそられるんだけど、PSRAMにつながっているピンが出ていないためPSRAMが使えなくなるので、秋月でまだ売ってるDに交換するのが一番安いかも。トランジスタとCH340Kを購入しても1000円付近で作れちゃう。

マルチクライアント対応のファームがなかなか調子良いけど、デフォルトのサンプルのような便利さがないので、Webでそこそこ設定できるように改良中。更新もあったようなのでベースを最新のものに差し替えてみたり。
やっぱりDevBoardみたいにUSB一本で書き込みもリセットもしてくれるのは楽だなぁ

Arduino IDEから書き込みしやすくなったので、安定性向上とこの質素なUIをどうにかしたいね。とりあえずwebserverのタスクのスタックサイズを1.5倍ぐらいにしてたらすごく安定したけど…

そういえばAitendoからESP-32Sが載ってない代わりにESP32-WROOM-32が付属してくるESP32-CAM-Kっていうキットが出てた。これならヒートガンで剥がすのが難しい人でも技適対応のESP32-CAMが作れるね。モジュールのはんだ付けは必要だけど。

0 件のコメント:

コメントを投稿