閉じる

UI言語[UI Language]

記事自体は翻訳されません! 記事によって英語版があったりなかったりします。翻訳がある記事は文頭に記載があるよ!
Each articles themselves will not be translated by this setting. Some of article has translation and some of them doesn't. You will notice if the article has its translation by its preamble!

テーマ[Theme]


アイキャッチ画像

ESP32-WROOM-32Dに書き込むためのCH340GがWindowsで認識できなかった話


ESP32-WROOM-32Dを使った自作基板にプログラムを書き込むためのUSB-UART変換モジュール――これもまたCH340Gを使った自作基板なのですが――がWindowsに認識されない(デバイスマネージャに表示されず、COMポートから通信できない)というトラブルに遭遇したので、その解決までの道をメモメモ。


前提

問題が発生した基板の構成は下記。ざっくり言うと自作基板でCH340Gを使ってPCと接続し、ESP32にプログラムを書き込みたいわけです。

1. ESP32-WROOM-32Dモジュール基板

ESP32-WROOM-32Dモジュール基板
ESP32-WROOM-32Dモジュール基板

自作基板。ESP32のブレイクアウト基板みたいなもので、ESP32-WROOM32-D以外にはLED、キャパシタ、それからIDCコネクタくらいしか載ってない。
回路図は下記の通り。

ESP32モジュール基板 回路図
ESP32モジュール基板 回路図

2. CH340Gモジュール基板

CH340Gモジュール基板
CH340Gモジュール基板

こちらも自作基板で、CH340Gとその動作に必要なクリスタル、ESP32の定番自動書き込み回路を搭載。接続はESP32同様IDCコネクタ。

CH340Gモジュール基板 回路図
CH340Gモジュール基板 回路図

CH340Gモジュール基板の回路図。特に変わったところはなし。

メイン基板

1, 2を繋ぐメインの基板。ESP32のEN, IO0の10kΩプルアップとLOWに短絡させるスイッチを搭載。またPCへのUSBコネクタも搭載(正確にはUSBコネクタを搭載した基板とワイヤーで繋がってる)

全体を繋いだところ
全体を繋いだところ

全体を繋いだ様子。


症状

PCに繋いでもCH340Gが認識されない(デバイスマネージャで確認できない)

USBの接続/解除が繰り返される

認識されないだけでなく、USBの接続/解除(「あァ〜USBの音ぉ〜♪」)を繰り返し、PCがリセットされる事もあってちょっとやばい感じだった。


解決方法

IO0のスイッチを押してLOWに短絡させた状態で電源投入すると、CH340Gが認識される。

その状態で何かしらプログラムを書き込むと、以降はIO0、ENを通常通りプルアップした状態でも正常に認識されるようになる。
ちなみに、IO0スイッチは書き込みまでずっと押したまま(LOWのまま)だったんですが、HIGH/LOWを見てるのは電源投入字だけだと思うので、CH340Gが認識されたら離しても良かったのかも。

CH340Gが認識されたデバイスマネージャ
CH340Gが認識されたデバイスマネージャ

あ〜認識されたよォ〜


感想

なにこれ?

工場出荷状態でプログラムが書き込まれていないESP32-WROOM-32Dはちょっと挙動が違うみたいなことだろうか?
さらに不思議なんだけど、色々試す中でESP32-WROOM-32Eでやってみたら、工場出荷状態の何も書き込まれていない状態でも上記解決方法は不要で普通にCH340Gが認識されたんだよねー。なので余計よくわからんかった。


後記

結局この解決に至るまで、一週間くらい作業停滞して鬱。
言っても軸の秤でずーっと使ってる組み合わせで、ESP32-WROOM-32Dを使った基板も、CH340Gのものも、微妙にレイアウトを変更しながらかれこれ4、5種類くらい作ってきてるわけです。回路に関しては毎回コピペで、今回のような事態に遭遇したことはなかったので参りました。
まあ、工場出荷状態のESP32-WROOM-32Dには気を付けたいと思います。そしていくら自動書き込み回路があっても、IO0とENのLOW短絡スイッチは大事! 今回のような場合だと自動書き込み回路だけではどうしようもないので。

ちなみに、自分のように技術力不足でもこうやってトラブルシューティングしやすいよう、できるだけモジュールに分けるという設計を今は試していて、今回はとても有用に働きました。自作したIDCのデバッグ基板を使って、各ピンを1本ずつ接続/未接続を簡単に試せたので。
しかし、このモジュール化によってトラブルを招いているようなフシも無くはないが…… まあ背に腹は代えられないと言うか、圧倒的経験不足なので、簡単にデバッグできるという方が大きく、致し方なし。

IDCリボンケーブルのデバッグ基板
IDCリボンケーブルのデバッグ基板

1.27mmピッチのIDCリボンケーブル用デバッグ基板。ピン毎に接続/未接続にしたり、順番を入れ替えたり。我ながらすごく便利。

いじょ!

この記事のタグ[This article is filed under]: 電子工作[Electronics] | ESP32[ESP32] | ハウツー[How to] | トラブル[Trouble] | 軸の秤[Mechanical Switch Force Curve Measuring Machine]


この記事はここで終わりです。
読んでいただきありがとうございました。
良かったらシェアしてね!

That's all for this article. Thank you for your reading.
Please share this if you like it!

Twitter | Reddit | Facebook | Pinterest | Pocket

前の記事[Prev Post]

前の記事のアイキャッチ画像

Raspberry Pi 5 買っちった【Linuxを使ってみたい】

次の記事[Next Post]

次の記事のアイキャッチ画像

HAGiBiS MiniMonitor USB-C Docking Station 【お写真レビュー】