【ESP32】書き込み分離:USB TypeCでシリアルポート認識されない?

この記事は約6分で読めます。

前回、「【電子回路】ESP32書き込み分離①:USB Cによる充電回路のみにする」の記事で、充電回路の基盤を作成して発注するところまでを記載した。

今回、JLCPCBから基盤が届いたので、その後の検証を行いたいと思う。

基盤到着。1周り小さくなった

発注した基板が1週間弱で到着した。

前回発注基盤と比較すると、部品点数も少なくなったので、サイズが一回り小さくなった。

丈夫のピンヘッダーメス型の2箇所にLCDディスプレイをはめる想定だが、果たして計算通りハマるかどうか、恐る恐る入れてみると。。。

ピッタリハマったー!

ディスプレイ間の隙間は計算通りで、ほぼ0である。

基盤に合わせて3Dプリンターを再設計

イメージとしては、下記図のような感じで3Dプリンターの目の部分にディスプレイをはめたいのだが、今まではディスプレイ間を少し離して筐体を作成していたため、隙間がないバージョンでcadを設計し直す必要がある。

fusion360でcadを修正

AnkerMakeで印刷。高さ7cm×幅8cm×奥行き2cm程度のオブジェクトだが、印刷時間20分弱と早い。

バッチリ収まっている。

ディスプレイを寄せた分、筐体全体も一回り小さくなった。

あとは、目を表示させた時に、寄り目になりすぎてデザイン的に違和感ないかを要検証

基盤書き込み検証

秋月でESP32ダウンローダキットを購入

本来であれば、下記図のように接続して使うのだが、

今回は自作基盤でダウンローダーキットのピンに合わせてメスピンを作成したため、直接刺す感じで。

コード実行を試みると、、、、エラー。。

RXとTXの回路図エラー

受け手のメスピンの配置を確認したところ、RXとTXを逆にして基盤発注してしまっている。RXとTX、TXとRXを繋ぐところがRXとRX、TXとTXを繋いでしまっている。。。前と同じミスをやってしまったorz

というわけで、ESP32ダウンロードキットに付属されていたジャンパー線を使って、TXとRXの部分の線をクロスさせて、再度コードアップロードを試みる。

引き続き、シリアルポートが発見できないという、同じエラーが出た。

ESP32ダウンローダーキットの回路図を見てみると、3.3VとGNDの間にもLEDが設置されているので、電源がPCから供給されていれば、光るはず。なのに光っていない。なぜ?

CH9102F USBシリアル変換ドライバーをインストール

その後、色々と調べたところ、USBシリアル変換ドライバーのインストールが必要なことに気づいた。今まで自作基盤では、CH340CのUSBシリアル変換ドライバーで作成しており、CH340xをmacにインストールしていたので、今回のダウンローダーキットにはドライバーが対応していない。

改めてメーカーのサイトを見てみると、下記のように書いてあった。

CP2104/CH9102搭載 ESP32 ダウンローダキット
ESP32/ESP8266用のUSB-TTLアダプタボードです。CP2104もしくはCH9102チップを搭載しています。チップなしでのワンボタンダウンロードとピンダウンによる手動リセットに対応しています。
ESP32/ESP8266用のUSB-TTLアダプタボードです。CP2104もしくはCH9102チップを搭載しています。
搭載チップはCP2104もしくはCH9102Fです。選べません。

選べません!って(笑)と思いながら、届いたダウンローダーキットのチップ型番を拡大して見てみると、手元にあったのはCH9102Fだった。

CH9102FのドライバはM5Stackの公式サイトで配布されているので、下記URLをクリックしてmac用ドライバーをインストール

m5-docs
The reference docs for M5Stack products. Quick start, get the detailed information or instructions such as IDE,UIFLOW,Ar...

解凍してみると、あれ?すでにインストールされているCH34x系でCH9102もサポートしてるじゃん

一応再度インストールしてみる

もう一度、PCとダウンローダーキットをtypeCコネクタで接続してみる。

今回はVsCodeのplatformioではなく、Arduinoで。やはり、シリアルポートが出てこない。本来であれば、/dev/cu/wchusbserialという名前から始まるシリアルポートが表示されるはずなのだが。

type-C USBポートの回路図にccピンがない?

よくよく、ダウンローダーキットのtype-cコネクタ部分の回路を見てみると、ccピンに関する記述がない。

type-cケーブル同士でデバイスを接続する時は、typeCケーブルは両端が同じ形状のため、どちらの機器がホストとデバイスなのかを認識するために、CCピンを用意していて、それを抵抗を介してGNDに接続する必要がある。

USB Type-Cに置き換える方法 第1話 Type-Cの原理を知る

ちなみに、自作基盤では、下記のようにUSB-connector部分の回路を設計している。

CCピンがないためにMacBook Proがデバイスを正しく認識できていない可能性がある。

というわけで、無理やりType-C to Type-Aコンバーターを2回介して接続してみたら、LED光点灯した!

次は、LEDが点灯しTXピンも点灯したが、RXピンが点灯しない状況に。

相変わらず、A fatal error occurred: Failed to connect to ESP32: No serial data received.のエラーが表示された。

うーん。ESP32書き込みに関しても自作基盤作成するしかないかな。

今回購入したダウンローダーキットにはENピンやBOOTピンも含まれていないので。 と思ったのだが、東京バードさんのこちらのブログを読んだら、CH340Eを使ったUSBシリアル変換モジュールが、秋月に売ってる?

【電子工作】CH340Eを使ったUSBシリアル変換モジュールを自作してみました!
【電子工作】CH340Eを使ったUSBシリアル変換モジュールを自作してみました!

しかも回路図みてみると、typeCコネクタはCCピンを、しっかり5.1kΩの抵抗を介してGND接続している。

秋葉原の店舗在庫になかったため(泣)、ネットで注文した。

ESP32書き込み用の自作基盤作成

ESP32書き込み用の自作基盤回路も作成してみた。

  • RX・TXの通信ができているかどうか確認するために、青色のLEDを追加
  • 書き込み基盤のピンヘッダーのRXとTXを、それぞれ、RX-TX、TX-RXでESP32につながるようにダブルチェック

というわけで、続きの検証は次回。

なかなか、一筋縄ではいかないなぁ。

自作基盤を作成してESP32書き込み分離に成功した記事はこちら

コメント

タイトルとURLをコピーしました