USB-UART-USB変換モジュール X86-USBCOM-1
- 物販商品(自宅から発送)基板のみ¥ 300
- 物販商品(自宅から発送)組み立てキット(基板+部品)¥ 900
- 物販商品(自宅から発送)完成品¥ 3,000
両端をパソコンに繋ぎ、シリアル通信(UART)を行うための変換器です。両端が USB Type-C 端子になっていて、A to C や C to C などの USB ケーブルを用いて、パソコンに接続して使います。 想定する用途は Linux のシリアルコンソールへの接続です。普通、Linux サーバーへは SSH でログインしますが、ネットワークやファイアウォールの設定を間違えて SSH で接続できなくなることがあります。そんなとき、Linux のシリアルコンソール経由でログインすることで復旧作業を行えます。 シリアルコンソールにログインするためには、ノートパソコン等を Linux 機の近くに持って行き、シリアル接続をすることになります。近頃のノートパソコンにはシリアルポート(RS-232C)は無いため USB-UART 変換器を使うわけですが、Linux 機にもシリアルポートが無い場合に困ってしまいます。これが、両端が USB になった本製品を開発した動機です。 本製品を、それぞれ Windows 11 と Ubuntu 22.04 が動いているパソコンに接続し、Windows 上の Tera Term から Ubuntu のシリアルコンソールへログインした様子が画像 4 枚目です。正常にログインでき、もちろんコマンド操作が通常通り行えます。 本製品に搭載されている USB コネクタは J1 と J2 の 2 つがあります。必ず、J1 から先にパソコンへ接続してください。なぜなら J1 側から電源を基板へと供給するためです。J2 を先にパソコンへ接続してしまうと、電源が入っていない IC 類に信号が入力されてしまい、破損の可能性があります。
仕組み
仕組みは単純です。基板内部で、2 つの USB-UART 変換器が対向に繋がっているだけです。両方のパソコンからは、それぞれ USB-UART 変換器として認識されます(画像 5 枚目)。 Windows では COM ポートとして見え、自動的に数値が割り当たります。画像 5 枚目では「COM4」となっています。接続する USB ポートを変えると COM ポートの番号が変動します。 Linux では /dev/ttyUSB0 として見えます。他に USB-UART 変換器が接続されている場合、ttyUSB1 などになるかもしれません。 コストを抑えるために、CH340E という安価な USB-UART 変換 IC を採用しています。そのため、接続する OS によっては、別途ドライバをインストールする必要があるかもしれません。Ubuntu 22.04 では OS 標準のドライバにより使用できます。
Linuxの設定
Linux へシリアルコンソール接続したい場合、serial-getty サービスを起動しておく必要があります。常に起動しておいてもいいですし、本製品を接続したときに自動的に起動させる設定を行っても良いでしょう。 systemd による設定例を示します。設定は大きく 2 段階になっています。 1 段階目は udev による認識です。本製品を Linux 機に接続したことを契機として、systemd に対して serial-getty サービスを起動するように指令を出すよう、udev を設定します。/etc/udev/rules.d/ttyUSB0_serial-getty.rules を次の内容で作ります。 ``` ACTION=="bind", SUBSYSTEM=="usb-serial", DEVPATH=="*/ttyUSB0", TAG+="systemd", ENV{SYSTEMD_WANTS}="serial-getty@ttyUSB0.service" ``` 2 段階目は systemd による serial-getty サービスの起動です。UART 接続は通信速度を正しく設定するのが肝要です。serial-getty サービスを起動する際、希望する通信速度を設定します。`sudo systemctl edit --full serial-getty@ttyUSB0.service` で起動したエディタ画面で、ExecStart を次の内容に変更します。 ``` ExecStart=-/sbin/agetty -o '-p -- \\u' 115200 %I $TERM ``` 設定ファイルを保存後、`sudo systemctl enable serial-getty@ttyUSB0` を実行して設定を有効化します。有効化した後、本製品を接続すれば、自動的に serial-getty サービスが ttyUSB0 に対して起動するはずです。
組み立て
回路図を画像 6 枚目、基板表の配置を画像 7 枚目に示します。 抵抗器(Rn)、コンデンサ(Cn)、ヒューズ(F1)は向きがありません。どちら向きに取り付けても大丈夫です。表裏も関係ありませんが、定数が印刷されている側を表にする(定数が見えるように取り付ける)ことをお勧めします。 LED(Dn)は向きがありますので、指定通りに取り付けてください。LED の向きは画像 7 枚目を参照してください。LED は左右の向きだけでなく表裏も重要です。表裏を逆にすると光が見えません。 チップ LED の裏面に向きが印字されています(画像 8 枚目)。三角形で示されており、頂点側がカソード、底辺側がアノードです。