マイコンを使った電子工作で何かと使うことが多いのがUSB-シリアル変換モジュールです。
PCと接続してArduinoやESP32/ESP8266などのマイコンボードにプログラムを書き込むにはUSB-シリアル変換モジュール(チップ)が必要となります。
開発ボードでは既にボード内にチップが搭載されてれいるのでPCと接続するだけでプログラムを書き込めるようになっています。
本家Arduino UnoではUSB端子のすぐ横にATmega16U2という小さなICチップが搭載されていますが、これがUSB-シリアル変換を行うチップです。
また互換ボードではCH340Cが使われていることも多いと思います。
ESP系の開発ボードでも同様で、ボードには何かしらのUSB-シリアル変換を行うためのチップが搭載されています。
しかしUSB端子が付いていない、例えばArduinoで言うとArduino Pro Miniなどは書き込むための装置(チップ)が搭載されていないので外部接続してプログラムの書き込みを行うためのUSB-シリアル変換モジュールが必要となってきます。
また開発ボードレベルではなく、マイコンチップ単体やESP-WROOM-32といったモジュールに直接プログラムを書き込みたい場合などでも同様に必要となってきます。
マイコンを使った電子工作をやっていると必ず必要となってくるUSB-シリアル変換モジュールですが、使用しているチップやWindows/MacなどOSとの相性などにより多くのものが市販されています。
市販されている大抵のモジュールは数百円程度で入手する事が出来ますが、使われているUSBシリアルドライバチップにはWCH社のCH340系のものやFTDI社のFT232RL、Silicon Labs社のCP2102など様々なものがあります。
先日自作Arduinoを作ったのですが、これに搭載するUSB-シリアル変換チップには何を使おうか?と考え、よく使われるCH340系やFT232RLやXS、CP2102(CP2102N)などのデータシートを調べブレッドボードで組んでテストをしていました。
最近自作基板の製作も始めたことから今後USB-シリアル変換チップを使う機会も多いと思うので、まずはCH340系のものから試してみることに・・・。
CH340シリーズのチップは結構種類が多いのですが、CH340Eを使ったUSB-シリアル変換モジュールをまず自作してみました。
CH340EにはDTRピンがありませんが、ArduinoではRTS端子を代用する事ができArduino Pro Miniなどへの書き込みも行えます。
CH340シリーズではCH340CやCH340Gはよく見かけるメジャーなチップです。
CH340Gでは外部クリスタルが必要となりますが、CH340Cでは不要となり一通りのピンが用意され安価なためArduino互換ボードや他のマイコンボードでもよく使われているチップです。
自作Arduinoの製作ではUSB-シリアル変換チップにCH340Cを使いました。
そして今回はFTDI社製のUSBシリアルドライバチップFT232RLを使ったUSB-シリアル変換モジュールを自作してみました!
目次
FTDI FT232RLを使ったUSB-シリアル変換モジュールの製作
冒頭でご紹介したようにマイコンを使った電子工作では必ず必要となってくるUSB-シリアル変換モジュール(チップ)には様々なものがあります。
その中で一番普及してるのがFTDI社製のFT232RLチップを使ったものになるのでしょうか?
安価なCH340シリーズのものと同様に使われているのをよく見かけます。
FT232RLチップはCH340シリーズのものと比べると少し高価なチップとなりますが、扱いやすく入手生が良い、またOSに限らずドライバーが安定しているなどの特徴があると思います。(これまで使ってきた感想です!)
手持ちの市販されているUSB-シリアル変換モジュールは多数持っていますが、FT232RLチップを使ったこちらのモジュール(赤基板のもの)は扱いやすく安定して使える印象を受けます。
Amazonでも正規チップが使われたものを数百円程度で入手する事が出来るのでオススメです!
ただこのモジュールなんですが、USB端子の形状がMiniUSBなのが残念なところです。
MiniUSBケーブルなんてもう特定の用途でしかあまり見かけないですからね!
このモジュールを使うために毎回古いタイプのUSBケーブルを用意する、結構面倒な作業ではあります。
最近ではType-C端子やケーブルを使うことが多くなったので、このような変換アダプタも使うようになりました。
Type-B端子やmicroUSB、MiniUSB端子に変換できるアダプタでArduinoやESP系のマイコンボードへの接続などでも便利に使うことが出来ます。
そして手持ちUSB-シリアル変換モジュールの中では一番使いやすい上記モジュールをベースにUSB端子をType-Cに変更したものを自作してみました。
FT232RLはTXD/RXD端子以外にESP32/ESP8266へのオートフラッシュによる自動書き込みの際に必要となるDTRやRTSといった一通りの端子が用意されており、またカスタムして別の用途にも使えるので各端子を使えるように全てボード上に引き出して製作しました。
回路構成
回路構成は非常にシンプルです。
送受信インジケーターLED(アクセスランプ)
CH340シリーズのチップでは送信時にのみ点灯させる事が出来るTNOW端子がありますが、FT232RLでは送受信のインジケーターLED(アクセスランプ)を接続できる端子が用意されています。
22番ピンのCBUS1端子がRX(受信)、23番ピンCBUS0端子がTX(送信)のインジケーターLEDの接続で使える端子です。
この端子はオープンドレインなので吸い込み方向でLEDを接続する必要があります。
外部3.3Vレギュレータを搭載
FT232RLにはチップ内蔵3.3Vレギュレータが搭載されています。
3V3OUT端子がこれにあたります。
この内臓3.3VレギュレータはCH340シリーズの約30mAと比べると多い50mAほど出力する事が出来ますが、ESP系のボードを扱う際には出力電流的に少し不安になります。
書き込み時(フラッシュ)には問題になりませんが、書き込み後にそのままモジュールからの電源供給によりWi-Fi機能をアクティブにしようとすると安定しない場合があります。(80mA以上必要)
そのためチップ内蔵3.3Vレギュレータは使わずに外部レギュレータを使う構成にしています。
AP7333という小さなレギュレータチップですが約200mAくらいは流せる計算です。
ロジックレベルの切り替え
5V or 3.3Vでロジックレベルを切り替えられるようにしています。
FT232RLでは4番ピンのVCCIO端子に入力する電圧によりロジックレベルを切り替えることが出来ます。
今回製作したものでは5Vと3.3Vの切り替えが出来るようにしていますが、2.5Vや1.8Vといった他のロジックレベルにもFT232RL では対応する事が出来ます。
以上が本モジュールの回路構成となります。
TEST端子はGNDに接続
基板製作にあたりブレッドボード上で何度もテストしたのですが、1ヶ所注意したい箇所があります。
FT232RLの26番ピンはTEST用の端子となりGNDに落としておく必要があります。
使わないのでオープンの状態にしておくとFT232RLが起動しないので注意が必要です!
参考 FT232RL データシートMouser.JPこのようなDIP化基板があると表面実装パーツの接続テストも出来るので便利ですね!
データシートを読み込んでいても・・・実際に組んでテストしてみると重要な部分が抜けていた、なんて事に気付くことが多々あります。
基板製作 & 発注
以上を踏まえ基板製作を行いました。
市販されているモジュールはI/Oラベルが非常に見にくいので、見やすくなるように少し大きめにシルクプリントしました。
そのため想定したボードサイズ(ブレッドボードに挿した時に片側3列使用)にパーツが全て収まらないので裏面にもパーツを配置しています。
また電圧切り替えには大きめのスイッチを使ったので使いやすくなりました!
基板の製作依頼はJLCPCBを使いました。
この基板サイズなら基板5枚と海外からの送料を含めても4~500円程度で基板を作ることが出来ます。
基板データ(ガーバーファイル)もダウンロード出来るようにしておきます。
何かの参考になればと思います。
FT232RL USB to TTL Module(Gerber)
またJLCPCBへの基板発注方法に関してはこちらの記事で詳しく解説しているので合わせて読んで頂ければと思います。
パーツ代金と合わせるとおそらく市販されているモジュールと比べ単価的に少し高くなりますが、使いやすいモジュールになったので用途によって使い分け出来るようにピンヘッダー or ピンソケットを使った2パターン作ってみました。
動作確認(書き込み例)
動作テストも問題ないようです。
こちらはArduino Pro Miniへのスケッチ書き込みの様子です。
TXD/RXD/DTR/VCC(5V)/GND端子を使った通常の書き込みです。
この投稿をInstagramで見る
またESP-WROOM-32への書き込みの様子がこちら。
ESP32/ESP8266への自動書き込み(オートフラッシュ)にはDTR端子とRTS端子が使われます。
ピンヘッダーを取り付けておけばブレッドボードで各端子を取り出せるので便利です!
この投稿をInstagramで見る
使用パーツ一覧
使用したパーツ一覧です。
パーツ | 定数 | 入手先 |
シリアル変換チップ | U1 FT232RL | Aliexpress / 秋月電子 |
レギュレータ | U2 AP7333-33SAG | 秋月電子 |
コンデンサ | C1/C2 0.1μF(0805) | Amazon / Aliexpress |
C3 10μタンタル(1206) | Aliexpress | |
C4/C5 1μF(0805) | Amazon / Aliexpress | |
LED | D1/D2/D3 LED(0805) | Amazon / Aliexpress |
ヒューズ | F1 ポリフューズ350mA(0805) | 秋月電子 |
USB端子 | J1 Type-C | 秋月電子 |
端子 | J2/J3/J4 ピンヘッダー&ピンソケット | ーーー |
抵抗 | R1/R2 5.1KΩ(0805) | Amazon / Aliexpress |
R3/R4/R5 1KΩ(0805) | Amazon / Aliexpress | |
SW1 | 6P DPDTスライドスイッチ(2.54mmピッチ) | 秋月電子 |
最後に!
自作Arduinoの製作を行っていた時に各種USB-シリアル変換モジュールやチップのテストをしていたのですが、FT232RLチップは扱いやすく動作も安定しているのでマイコンボードやモジュールなどで多く採用されているのも納得できました。
一通りFT232RLに関して理解が出来たので、次に考えている自作ESP32開発ボード製作の際にこのチップを使ってみようかと考えています。
何かの参考になれば幸いです!
コメントを残す