コンテンツにスキップ

USB-UART アダプター

USB-UART アダプターは、コンピューターまたは Linux ホストが USB を介して UART デバイスと通信するために必要です。USB を通常のシリアルライン TXRXGND に変換します。

このアダプターは、適切な USB コネクターを持たないボードのフラッシュ書き込み、ログ確認、診断、復旧によく使用されます。

使用場面

USB-UART アダプターが役立つ場面:

  • 一部のマイコンボードへのフラッシュ書き込み;
  • シリアルログの読み取り;
  • デバイスコンソールへのアクセス;
  • ブートローダーモードの診断;
  • Arduino Pro Mini および一部の Nano クローンの接続;
  • 内蔵 USB を持たないボードでの作業;
  • フラッシュ失敗後の復旧;
  • シリアル経由でのホストへの一時的な MCU 接続。

ボードにすでに適切な USB があり、シリアルデバイスとして認識される場合、別途 USB-UART アダプターは不要な場合があります。

端子の構成

典型的な端子:

  • TX または TXO — アダプターからデバイスへの送信;
  • RX または RXI — デバイスからの受信;
  • GND — 共通グラウンド;
  • VCC3V3、または 5V — 必要に応じた電源供給;
  • DTR — 自動リセット/フラッシュによく使用される;
  • RTSCTS — フロー制御ライン、またはブート/リセットシナリオ用。

接続図:

CH340T チップ搭載 USB-UART アダプター

出典: Wikimedia Commons, SparkFun Electronics, CC BY 2.0

単純なログ読み取りには、TXRXGND だけで十分なことが多いです。電源は、ボードをアダプターから給電することが明確な場合にのみ接続します。

TX と RX の接続方法

接続はクロス接続です:

TX adapter -> RX device
RX adapter <- TX device
GND adapter -> GND device

接続できない場合、最初に確認すること:TXRX が逆になっていないか、共通 GND があるか、速度が一致しているか、正しい COM/tty ポートが選択されているか。

3.3V と 5V

USB-UART アダプターの種類:

  • 3.3V のみ;
  • 5V のみ;
  • 3.3V/5V 切り替えスイッチ付き;
  • ジャンパーまたはハンダジャンパー付き;
  • VCC はある電圧で、信号は別の電圧レベルのもの。

注意点:VCC のレベルと TX/RX のレベルは、ラベルだけでは必ずしも明確ではありません。

ESP32、RP2040、STM32 は通常 3.3V ロジックを使用します。Arduino Uno/Nano は 5V ロジックを使用することが多いです。3.3V 入力に 5V 信号を印加すると、ボードが損傷する可能性があります。

接続前に、アダプターとボードのドキュメントを確認してください。ジャンパーの色やケースのラベルだけを頼りにしないでください。

TTL UART と RS-232

マイコン向けの USB-UART アダプターは通常 TTL/CMOS UART を出力します:3.3V または 5V

これは本物の RS-232 とは異なります。

RS-232 は異なる電圧レベルを持ち、マイコンの GPIO に直接接続できません。実際の RS-232 ポートで作業する必要がある場合は、通常の USB-UART TTL ではなく、USB-RS232 アダプターまたはレベル変換器が必要です。

アダプターからの電源供給

アダプターの VCC ピンは便利ですが、誤用されることが多いです。

安全なアプローチ:

  • ログや診断では、まず TXRXGND のみ接続する;
  • ボードがすでに USB、電源、または他の回路から給電されている場合は VCC を接続しない;
  • USB-UART 経由でモーター、サーボ、リレー、ヒーター、LED ストリップに給電しない;
  • アダプターが実際に供給できる電流量を確認する;
  • VCC3.3V5V かを把握する。

回路を理解せずに 2 つの電源を接続すると、逆流給電、不安定動作、またはボードの損傷を招く可能性があります。

DTR と RTS

一部のボードは自動リセットまたはブートローダー起動に DTRRTS を使用します。

例:

  • Arduino Pro Mini はフラッシュ時のリセットにコンデンサを通じた DTR をよく使用する;
  • ESP32 ボードは ENBOOT を自動制御するために DTR/RTS を使用することがある;
  • 一部のブートローダーシナリオでは、これらのラインが接続されていない場合、手動でボタンを押す必要がある。

フラッシュが自動的に開始しない場合、必ずしも TX/RX の問題ではありません。DTR/RTS が接続されていない、誤ったブートローダーが選択されている、または BOOT/RESET を手動で押す必要があるかもしれません。

CH340、CP2102、FTDI

代表的な USB-UART チップ:

  • CH340/CH341 — 安価で広く普及しているアダプター;
  • CP2102/CP210x — Silicon Labs の一般的な USB-UART;
  • FT232/FTDI — クラシックな選択肢で、多くの場合より高価;
  • PL2303 — 古いアダプターやケーブルに見られる。

現代のシステムではドライバーが自動的にインストールされることが多いですが、常にそうとは限りません。ポートが表示されない場合は以下を確認してください:

  • USB ケーブルが充電専用ではないか;
  • デバイスがシステムに認識されているか;
  • ドライバーが必要かどうか;
  • 古いドライバーが競合していないか;
  • ポートが別のプログラムに占有されていないか。

アダプターのテスト方法

シンプルなループバックテスト:

  1. アダプターをコンピューターに接続する。
  2. アダプターの TX をアダプターの RX に接続する。
  3. シリアルターミナルを開く。
  4. ポートと速度を選択する(例:115200)。
  5. 文字を入力する。
  6. 正常に動作していれば、文字がエコーバックされる。

これにより、外部ボードなしでアダプター本体、ドライバー、ケーブル、ターミナルプログラムをテストできます。

購入前の確認事項

USB-UART アダプターを購入する前に確認すること:

  • TX/RX のレベル:3.3V5V、または切り替え可能か;
  • レベルの選択方法;
  • 使用チップ:CH340、CP2102、FTDI、またはその他;
  • 使用システム向けのドライバーがあるか;
  • 自動フラッシュが必要な場合、DTRRTS があるか;
  • USB コネクターの種類;
  • GNDTXRXVCC ピンが使いやすい順になっているか;
  • 回路図または十分なドキュメントがあるか;
  • 必要に応じて VCC から引き出せる電流量。

ESP32/RP2040/STM32 の診断には、3.3V 信号で明確なマーキングのあるアダプターがより便利です。

よくある間違い

  • TXTXRXRX を接続してしまう;
  • 共通 GND を忘れる;
  • 3.3V ボードに 5V レベルを選択する;
  • すでに給電されているボードに VCC を接続する;
  • USB-UART アダプター経由で負荷に給電する;
  • USB-UART TTL と USB-RS232 を混同する;
  • 充電専用 USB ケーブルを使用する;
  • CH340/CP2102/FTDI ドライバーをインストールしない;
  • 誤った COM/tty ポートを選択する;
  • 自動フラッシュに必要な DTR/RTS を接続しない;
  • シリアルターミナルを開いたままにして、フラッシャーがポートを開けない原因を不思議がる。

まとめ

USB-UART アダプターは、コンピューターの USB とデバイスの UART ピンを繋ぐブリッジです。最小限の接続には、クロス接続した TX/RX と共通 GND が必要です。

主なリスク:3.3V/5V レベルの誤り、不要な電源接続、TTL UART と RS-232 の混同、フラッシュ用の DTR/RTS ラインの欠如。

関連資料