ESP32 DevkitCを使ってUSBシリアル変換をする話

タイトルからして変なタイトルなのですが、誤植でもおかしな日本語というわけでもなく、ESP32 DevkitC(v4)を使ってUSBシリアル変換をしたという話です。特別なことをしたわけでもなく、ただ単にこれをそのまま使っています。

なんでこんなことをしたのか?と思うかと思いますが、USBシリアル変換のデバイスを所持していなかったためです。調べれば価格は出てきますが、USBとシリアル変換デバイスはとても安価で数百円程度で用意できます。

ただ、このUSBシリアル変換のデバイスというのは、使うツールによっては、チップが指定されていたり、特定のデバイスがダメだったりするようです。

例えば、詳細は忘れたのですがArduino系のツールでCH340はだめで、CP2102やFH232は使える等、ツールによっては指定があったり、相性があり使えないことがあります。

今回、私はst32flashというSTM32系のチップへの書き込みツールに使うつもりで、調べているとCH340系のもので相性がある場合があるみたいなので、それ以外のものを使ってみようとなったわけです。

今回書き込みたいのは「STM32F103C8T6」

しかし、USBシリアル変換のデバイスは安いとはいえ、複数買うという無駄な出費は抑えたいというのは人情なもので、実際に使えるか試すことはできないだろうか、と考えました。

すると手元に良い物が転がっているではありませんか。それが、今回使用するESP32 DevkitC V4です。

ESP32 DevkitC V4

そもそも、ESP32というチップはUSBホストになる機能を備えていないため、USBシリアル変換チップをボードに搭載することで、プログラムを書き込めるようにしています。

そして、搭載されているチップはこちらのCP2102。

CP2102が搭載されている

このチップを外部で使えるように引き出せれば書き込みにも使えるのでは?なんて思い調べてみると、わざわざ引き出すまでもなく、TX、RX、GND、VDD(+5V or +3.3V)の端子が用意されているではありませんか。接続さえすればそのまま使えるのでは?となり今回の記事を書く流れになったわけです。

控えめに言って何してるんだ?っていう感想になると思いますが、数百円をケチろうと頑張っただけのことです。そもそもESP32 DevkitC V4をなんで持っているのか?ということですが、遊びで使えそうと思い購入しました。しかし、使っていませんでした。これを買わずにUSBシリアル変換デバイスを買うお金に当てればいいのにという野暮な突っ込みは無しです。

余談はさておき、実際に使ってみようと思います。どんなツールを使って書き込むかというのはシリアルならたくさんあると思うので、そこに関しては書きませんが、接続に関しては書いておきます。

まず、USBシリアル変換のデバイスを仕様する際に気を付けないといけないのが、TXとRXの接続です。

この規格を誰が策定したのか、そもそも書き方の問題なのかというところですが、TXを例にとり「(USBシリアル変換ボード)-(通信先のデバイス)」のピンとすると、「TX-TX」で接続するボードと、「RX-TX」で接続するボードがあります。ストレート結線とクロス結線の話題ですね。

今回使用するESP32 DevkitC V4の場合はストレート結線です。「TX-TX」、「RX-RX」で接続するのが正解です。あくまでシルクの印刷がESP32 DevkitC V4の方にTX、RXのシルクの印刷というだけですので、バージョンによっては逆になっているかもしれませんが、私の個体ではストレート結線が正解でした。

というわけで、実際に配線してみました。汚いのは記事にするつもりはなくて、自分への記録用のつもりの写真だったからですね。

汚い配線

端子がないのを強引に結線しているのでこんなブレッドボードにピンが刺さっている謎の状態ですが、正常に書き込みが可能でした。下に見えるテスターで導通を確認していました。

というわけで、ESP32 DevkitC V4を利用してUSBシリアル変換をし、STM32F103にプログラムを書き込めたという話でした。

以上です。お読みいただきありがとうございました。

コメントする

メールアドレスが公開されることはありません。