PCからマイコンボードへの書き込みの際に使用するUSB-シリアル変換モジュールやそれに使われているチップはいろいろとありますが、よく見かけるものではSilicon Labs社のCP2101/CP2102、FTDI社のFT232RL、そしてWCH社のCH340シリーズのチップは非常に有名ですね。
電子工作で自作基板(PCB)の製作も始めたことから、これらUSB-シリアル変換チップを使う機会も増えてきました。
ブレッドボードでのテストを経てこれまで実際に実装していくつか使ってみましたが、CH340シリーズのチップは安価で入手もしやすいので便利だと思います。
CH340は安定性が悪い?といった話をネットで見かけることがありますが、私の環境では他のチップ同様に特に問題なく使えています。
CH340シリーズのチップはCH340G/CH340C/CH340T/CH340B/CH340N/CH340K/CH340Eと結構種類が多いのですが、今回CH340Kを使ってみました。
他のチップ同様にWindows環境からだとシリアルポートとして認識しESP32への書き込みを問題なく行うことが出来ましたが・・・
Mac環境ではシリアルポートを認識してくれず公式WCHで配布されているドライバを入れたりといろいろとやったのですが、どうしてもMac環境では認識してくれず使うことが出来ませんでした!
他のCH340シリーズのチップ同様、手軽に使えるUSB-シリアル変換チップとはいかず・・・少し備忘録的に書いておきます。
目次
ESP32(ESP-WROOM-32)への書き込みにCH340Kを使ってみる!
CH340シリーズとは?
USB-シリアル変換チップには冒頭でご紹介したように、Silicon Labs社製のものやFTDI社製のもの、そしてWCH社製のチップが使われているのをよく目にします。
WCH社製のCH340シリーズのチップは非常に有名で、Silicon LabsやFTDIのチップと比べて安価なため互換Arduinoといった多くの互換マイコンボードなどで使われているのをよく目にすると思います。
CH340シリーズのチップは安定性が良くない?といった話を聞くことがありますが、多くのコピー製品(チップ)が出回っているからでしょうかね?
これまでいくつか自作基板でCH340CやCH340EといったCH340シリーズのチップを使いましたが、正規チップを使う限り私の環境では特に問題になったことはありません!
安価で入手性も良く使いやすいチップだと思います。
WCH社製のCH340シリーズのチップは、CH340G/CH340C/CH340T/CH340B/CH340N/CH340K/CH340Eと多くの種類のチップがリリースされています。
CH340Gは外部発振器(クリスタル)が必要となりますが他のCH340チップは内蔵されているので、クリスタルや抵抗など外付けの部品が必要なく、電源ラインのパイパスコンデンサを接続するだけで使えます。
参考 CH340 データシート秋月電子通商今回はESP32(ESP-WROOM-32)への書き込みにCH340Kチップを使ってみました。
WCH CH340K
CH340シリーズのチップではCH340Cが一番ベーシックなチップになるのでしょうか?
CH340Gのように外部クリスタルを用意する必要がなく一通りの信号ラインが用意されているので、互換マイコンボードで使われているのをよく目にします。
私も以前自作Arduinoを製作した際に使用しました。
小さなパッケージのチップでは、CH340N / CH340K / CH340Eがあります。
CH340Eは10ピンのMSOP-10という小さなパッケージのチップですが、信号線にRTSやCTSが使えます。
またTNOW端子を使って送信時のインジケーターLEDを取り付けることも出来ます。
Arduinoなどへの書き込みで使えることから、以前CH340Eを使ったUSB-シリアル変換モジュールも製作しました。
そして今回はCH340Kの話です。
少し話がそれてしまいますが現在このような基板の製作を考えています。
キーホルダーサイズの小さな基板となり回路的にはESP-WROOM-32にUSB-シリアル変換チップを使ったものとなります。
イメージする基板サイズに必要なパーツを収めようと考えるとスペース的に結構大変なので極力パーツ点数を減らし、またパーツも小型なものを使いたいと考えています。
フレキシブルケーブルのパットの位置が上手く合うかな🤔
一応図面通りの長さで作り折り曲げたけど、パットを少し長めに作っとけって事だな。 pic.twitter.com/KTHq5mEXMc
— ガジェット大好き!! (@smartphone_jp1) September 19, 2023
USB機能が内蔵されたESP32 C3やS3を使うといった別の選択肢もあるのですが、パッケージサイズの小さなシリアルチップとしてCH340Kを使うというのもその選択肢の一つとなり、CH340Kは手元にチップがあったのですがまだ試してみたことがなかったので今回初めて使ってみました。
CH340KはCH340Eとピン数が同じ10ピンのチップですが、パッケージサイズがCH340Eとは異なりESSOP-10という珍しいサイズ?のパッケージになっており1mmピッチのチップとなります。
ピッチ変換基板(DIP化基板)を使うとブレッドボードでもテストしやすいのですが・・・
ESSOP-10というパッケージって珍しいのでしょうかね?
バックプレーンがGNDになったものでピッタリと合う市販されているピッチ変換基板がなかなか見つからなかったのですが、以前USB PDトリガーチップCH224Kを使った際に購入したこちらのピッチ変換基板が使えました!
CH340Eとの大きな違いはCH340KにはUARTの制御で使う信号線にRTSとCTSに加えDTRも使えるようになっています。
DTR信号はArduinoのリセット制御でよく使われますが、DTR / RTS信号を使ったESP32の自動書き込み(オートリセット)にも使えるということですね。
基本接続
それではCH340Kを使った基本接続です。
データシートにあるようにCH340Kは電源端子(VCC/V3)に接続する2つのパイパスコンデンサのみのシンプルな接続で動作してくれます。
V3端子(内蔵3.3Vレギュレータ)に接続する0.1μFのコンデンサは必須となります。
このコンデンサは他のCH340シリーズのチップ同様、接続しないとPCにデバイスとして認識されないので注意が必要です!
CH340Kの電源電圧は3.3Vまたは5Vに対応しています。
VCCと同じ電圧レベルで動作するのでArduinoなど5Vデバイスで使用する場合はUSB端子のVBUS(5V)からVCCへの電源供給が行なえます。
今回ESP32への書き込みに使うのでCH340KのVCCは3.3Vを接続するのが望ましいのかと思っていましたが・・・どうやらデータシートを見る限り保護回路が入っているので5Vでも問題ないようですね!
USB端子とCH340K接続部分はこのようになります。
データライン(D+/D-)の接続と、CH340Kに接続する2つのパイパスコンデンサのみで完結します。
この段階でPCに接続するとシリアルポートとして認識されるはずなんですが・・・Mac環境だとどうもダメなようです!
先にESP32への接続も見ておきます。
自動書き込み(オートリセット)
ESP32への書き込みにはESP-WROOM-32のENピンとIO0ピンを使った手動書き込みでも行なえますが、CH340Kには自動書き込み(オートフラッシュ)に必要なDTR端子とRTS端子が用意されているのでこれを使って接続していきます。
自動書き込みにはNodeMCU方式と呼ばれるトランジスタを2つ使いDTR/RTS信号を利用した書き込みモードに入るための回路を使います。
ESP32やESP8266への自動書き込みではよく使われる接続ですね!
CH340Kを使ったESP32(ESP-WROOM-32)への書き込みの全体接続はこのようになります。
今回製作を考えているものではパーツの数を極力減らしたいので、UMH3Nというチップで代用し動作確認を行いました!
トランジスタ2つとベースに入る抵抗を減らすことが出来ます。
Mac環境ではUSBシリアルを認識してくれない!
PCに接続するとUSB端子のD+/D-の接続と電源ラインの接続さえ間違っていなければ、PCにシリアルポートとして認識してくれるはずなんですが・・・
Mac環境だとArduino IDEのシリアルポートにはCH340Kとして認識されず表示されませんでした。
ターミナルからUSBシリアルポートを表示させてもやはり同様に表示されませんでした。
これまでMac環境だと他のシリアルチップを使う時でも基本的にドライバを入れなくても使えたのですが・・・
一応WCH公式サイトからCH340用の新しいドライバをインストールしてみたのですが、やはりMac環境ではダメなようです!
次にWindows環境で試してみるとドライバのインストールなしですんなりと認識してくれ、
通常通りスケッチ書き込みも全く問題なく行うことが出来ました。
私の知識ではこれ以上の事を試すことが出来ず・・・CH340Kを使った書き込みではMac環境を使うことが出来ないという結果に!
【追記】Mac環境でCH340Kが使えるようになりました!
Mac環境(macOS)でもCH340Kが使えるようになったので追記記事を書きました。
最後に!
電子工作で自作基板の製作も始めたことからUSB-シリアル変換チップを使う機会が多くなりました。
今回実際に使うかもしれないという選択肢の一つとして初めてCH340Kを使って書き込みのテストを行ってみたのですが、Mac環境では使えないという結果になりました。
SNSなどで調べてみると同様にMac環境ではUSBとしては認識するけどシリアルとしては認識してくれないという書き込みをいくつか見つけましたが・・・
普段Mac環境を使うことが多い私の環境としては、どうも使い勝手が悪いという結果になってしまいました!
何かの参考になればと思います。
また解決策等、ご意見なども頂けるとありがたいです。
すでに解決済みかもしれませんが、CH340Nを使用した自作のUPDI書込機では、Mac用ドライバーを入れても同様に認識しなかったのですが、ドライバーをアンインストールしたら反対に認識するようになりました。MacBook Pro M1、OSはSonoma 14.4.1です。
そうなんですか!
私の環境ではCH340シリーズのチップは全て試したのですが、どうしてもCH340KだけがMacでは認識してくれなくて・・・
ドライバのアンインストールは試していないので、時間ある時に試してみます。
ありがとうございます(^^)