コンテンツにスキップ

USB-TTL

USB-TTLアダプターまたはUSB-UARTアダプターは、コンピューターをUSB経由でUARTを介してマイクロコントローラーと通信できるようにします。

必要な場合。

  • 一部のボードをフラッシュする
  • ログを読む
  • UART通信をデバッグする
  • モジュールを構成する
  • 通常のUSBが機能しないときにボードを回復する
  • 組み込みUSB-UARTがないデバイスに接続する

一般的なアダプターはCH340、CP2102、FT232などのチップを使用しています。

USB-TTLまたはUSB-UART

消費者の説明はしばしばUSB-TTLと言っています。

技術的には、通常TTLロジックレベルを持つUSB-UARTアダプターを意味しています。

理解すべき主なこと。

  • USB側はコンピューターに接続します
  • UART側はマイクロコントローラーに接続します
  • アダプターはすべてのボードのプログラマーではありません
  • アダプターはSWDを介してSTM32をフラッシュする場合、ST-Linkに代わるものではありません

メインピン

通常、以下があります。

  • GND
  • TX
  • RX
  • VCC または 3V3/5V
  • 時々 DTR
  • 時々 CTSRTS

通信の最小。

  • GND
  • TX
  • RX

電源は、アダプターがボードに電力を供給すべきことが確実な場合にのみ接続されます。

TXとRXはクロス接続されます

UARTは次のように接続されています。

adapter TX -> board RX
adapter RX -> board TX
adapter GND -> board GND

TX は送信です。

RX は受信です。

あるデバイスの送信者は、別のデバイスの受信者に接続する必要があります。

TXTX に接続した場合、通信は通常機能しません。

UART接続におけるクロス接続されたTX/RX

出典: SparkFun Electronics、CC BY-SA 4.0

共通のグラウンド

アダプターの GND とボード GND を接続する必要があります。

共通グラウンドなしでは、UARTが機能しないか、不安定に機能します。

ボードが別の電源から電力を供給されている場合でも、共通の信号レベルとしてグラウンドが必要です。

3.3Vと5Vロジックレベル

これは最も重要なポイントの1つです。

アダプターは以下のロジックで動作できます。

  • 3.3V
  • 5V
  • スイッチ可能な 3.3V/5V

多くのモダンボードとモジュールは3.3Vロジックを使用しています。ESP32、RP2040、多くのSTM32。

5V UART信号を3.3V入力に適用すると、ピンまたはボード全体を損傷することができます。

接続する前に、確認してください。

  • ボードが使用するロジックレベル
  • アダプターが使用するロジックレベル
  • 3.3V/5Vジャンパーが何を行うか
  • ジャンパーが VCC 電源のみを変更するか、または TX/RX レベルも変更するか

一部のアダプターは5V電源を提供しますが、3.3Vロジック信号です。その他は電源とレベルの両方を変更します。特定のアダプターのドキュメンテーションを確認してください。

アダプターからの電力

常に VCC を接続する必要があるわけではありません。

多くの場合、以下のみを接続する方が安全です。

  • GND
  • TX
  • RX

ボードを通常のソースから電力を供給してください。

アダプターから VCC を接続できる場合。

  • ボードはその電圧に対応しています
  • ボード電流はアダプターの能力範囲内です
  • 同時に別の電源がない
  • ボードのドキュメンテーションがこのピンを通じた電力供給を許可しています

危険な間違いは、USB-UARTアダプターと別の電源から同時に電力を供給し、ソースが競合させることです。

DTRと自動リセット

一部のボードはフラッシュ中に自動リセットに DTR を使用しています。

例えば、Arduino Pro MiniおよびそのようなボードはコンデンサーをとおしてDTRを使用して自動リセットできます。

フラッシュが自動的に開始されない場合、これは以下の理由かもしれません。

  • DTRが接続されていない
  • 手動リセットが必要です
  • 間違ったアダプターが選択されている
  • 間違ったブートローダーが選択されている
  • IDEで速度またはボードが正しく選択されていない

単純なログ読取の場合、DTRは通常不要です。

アダプターがシステムに表示されているかどうかを確認する方法

macOSおよびLinuxでは、アダプターは通常 /dev のデバイスとして表示されます。

例。

ls /dev/tty.*
ls /dev/cu.*
ls /dev/ttyUSB*
ls /dev/ttyACM*

Windowsでは、COM ポートとして表示されます。

ポートが表示されない場合。

  • USBケーブルを確認してください
  • 別のUSBポートを試してください
  • ドライバーを確認してください
  • それが単なる充電ケーブルではないことを確認してください
  • アダプターに表示されているチップを確認してください。CH340、CP2102、FT232。

安いアダプターは時々別のドライバーを必要とします。特にWindowsで。

ループバックテスト

アダプターをチェックする簡単な方法。

  1. アダプターの TXRX を一緒に接続します。
  2. シリアルターミナルを開きます。
  3. ポートと速度を選択します。
  4. テキストを入力します。

入力した文字が戻る場合、アダプターとポートはおそらく機能しています。

テストの後、TXRX の間のジャンパーを削除します。

一般的なエラー

  • TXTXRXRX に接続
  • 共通の GND を忘れた
  • 3.3Vボードに5Vレベルを選択した
  • ボードが既に別々に電力を供給されているのに VCC を接続した
  • USBケーブルが充電のみであることが判明した
  • CH340/CP210x/FTDIドライバーがインストールされていない
  • 間違った COM ポートが選択されている
  • UART速度が一致しない
  • USB-UARTがSWDを介してSTM32をフラッシュすることを期待している
  • フラッシング中にブートモードまたはリセットを混同した

重要な点

  • USB-UARTアダプターはコンピューターとボード間のUART通信に必要です
  • 通信の最小。GNDTXRX
  • アダプター TX はボード RX に、アダプター RX はボード TX に接続します
  • 接続する前に3.3V/5Vロジックレベルを確認してください
  • VCC はアダプターから電力が必要な場合にのみ接続されます
  • アダプターが見えない場合は、ケーブル、ドライバー、USBポートを確認してください

参考資料