シリーズ:基礎シリーズ(組み込み開発)
この記事の役割:デバッガで止めるだけだと追えない「動作の連続性」を、ログで追えるようにする(状態・異常の観測手段を作る)。
※ログがあると、どこまで動いているかが分かるので、エラーの原因探しが速くなります。
はじめに(最初に伝えたいこと)
デバッガは「止めて確認」できますが、止めないと分からないことも多いです。
- いつ初期化が終わった?
- ループは回ってる?
- どの状態(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—GND と TX→RX が基本
- 文字化けはまず 設定不一致(特にボーレート) を疑う
- まず Hello 1行 を出して確認し、次に 周期ログ、最後に 状態/異常ログ を追加すると、どこで問題が起きているか分かりやすくなる。
次に読む
- 実験シリーズ:E0-05 ログ出力(UART)(具体的なピン位置、設定手順、実コード、出力例)
- 基礎:GNDとは?なぜ基準点が必要なのか?