組み込み開発

ログ出力入門(UART)

シリーズ:基礎シリーズ(組み込み開発)
この記事の役割:デバッガで止めるだけだと追えない「動作の連続性」を、ログで追えるようにする(状態・異常の観測手段を作る)。
※ログがあると、どこまで動いているかが分かるので、エラーの原因探しが速くなります。

はじめに(最初に伝えたいこと)

デバッガは「止めて確認」できますが、止めないと分からないことも多いです。

  • いつ初期化が終わった?
  • ループは回ってる?
  • どの状態(INIT/IDLE/RUN/ERROR)にいる?
  • どこでエラーになった?

これを 止めずに追う のがログ(UART)の役割です。

先に結論(※ここは読み飛ばしてOK)

  • UARTログは、マイコンからPCへ“文字(ログ)”を送る手段です(止めずに動作の様子を確認できます)
  • まずは Hello 1行 がPCに表示できれば成功です
  • ログが文字化けする原因の多くは「ボーレート(通信速度)の不一致」 です
    → まず マイコン側の設定PC側ターミナル設定 を同じ値にします
  • 配線は基本これだけ
    • GND(マイコン) → GND(USB-UART)
    • TX(マイコン) → RX(USB-UART)
    • RX(マイコン) ← TX(USB-UART) (PCからマイコンへ送らないのなら不要)
  • ターミナル設定は、 マイコン側の設定に合わせます

1. UARTとは

UARTは、1本の信号線で順番にデータを送る「シリアル通信」の一種です。
ログ用途では、基本的に マイコンが文字を送る(TX) だけで成立します。

2. 配線の原則

2.1 GND同士を必ずつなぐ

外部機器(USB-UART)をつなぐときは、GNDが共通でないと通信できません
外部機器(USB-UART)に接続するGNDと、マイコンに接続するGNDは同じGNDに接続する必要があります。
「信号線はつないだのに反応がない」原因として、GNDが繫がっていないか、つないだつもりで共通のGNDになっていないことが多いです。

  • GND(マイコン)— GND(USB-UART)

2.2 送る線(TX)は、受け取る線(RX)へ

ログをPCに出すときは、

  • TX(マイコン)→ RX(USB-UART)

に接続するのみでOKです。

PCからマイコンへも送る必要がある場合(入力コマンド等)は、

  • RX(マイコン)← TX(USB-UART)

に接続します。

3. ターミナル設定(最重要:一致させる)

UARTは「設定が一致していること」が前提です。
特にログの文字化けは、ほとんどがマイコンの設定とPC側のターミナルの設定の不一致です。

3.1 一致させる項目

  • ボーレート(通信速度)
  • データ長(例:8bit)
  • パリティ(例:None)
  • ストップビット(例:1)
  • フロー制御(例:None)

大事なのは「値そのもの」より マイコン側とPC側が同じ になっていることです。

4. まずはHello 1行 → 次に周期ログ(考え方)

UARTログの導入は、段階を分けて確認しながら進めると簡単です。
1) Helloを1回だけ出す(表示できるかの確認)
2) 周期で出す(定期的に表示できているかの確認)
3) 状態やエラーを出す(原因を追えるようにする)

この順にすると、まず 「ログが出ない(配線・設定)」問題 を早く切り分けられます。
その上で、ログが安定して出るようになれば、次は 「プログラムの不具合」 をログで追いやすくなります。

5. 文字化けするとき(まずここだけ)

文字化けの多くは、ボーレート(通信速度)の不一致です。
マイコン側のUART設定値と、PC側ターミナルの設定値を同じにすることで解決することが多いです。

それでも直らない場合は、次の「何も出ないときチェック」へ進みます。

6. 何も出ないときチェック(最短ルート)

  • PCで正しいCOM(ポート)番号を選択している
  • ターミナル設定がマイコン側設定と一致している(特にボーレート)
  • 外部機器(USB-UART)に接続するGNDと、マイコンに接続するGNDは同じGNDに接続されている
  • TX(マイコン)と RX(USB-UART)が線でつながっている(TX→RX)
  • RX(マイコン)と TX(USB-UART)が線でつながっている(RX←TX)※PCからマイコンへも送る必要がある場合のみ
  • USB-UART変換ケーブル(変換器)のTX/RX信号電圧(3.3V/5V)と、マイコンのI/O電圧が合っている

まとめ

  • UARTログは「止めずに動作を追う」ための手段
  • 配線は GND—GNDTX→RX が基本
  • 文字化けはまず 設定不一致(特にボーレート) を疑う
  • まず Hello 1行 を出して確認し、次に 周期ログ、最後に 状態/異常ログ を追加すると、どこで問題が起きているか分かりやすくなる。

次に読む

  • 実験シリーズ:E0-05 ログ出力(UART)(具体的なピン位置、設定手順、実コード、出力例)
  • 基礎:GNDとは?なぜ基準点が必要なのか?

-組み込み開発