シリーズ:実験シリーズ(フェーズ0)
対応ロードマップ:フェーズ0 / E0-05
この記事で扱う範囲:Helloログを1回だけUARTで出して、TeraTermで確認する。
この記事で扱わないこと:周期ログ、状態遷移ログ、エラーログ(これらは次回以降)
1. 目的
RA8M2(RTK7EKA8M2S00001BE)からUARTでHelloを出し、WindowsのTeraTermで受信表示できる状態にします。
「動いている」を止めずに確認するための最低限のログ経路を作るのが目的です。
2. 前提・環境(ボード/ツール/使用部品)
- ボード:RTK7EKA8M2S00001BE(RA8M2)
- IDE:e² studio + FSP
- PC:Windows + TeraTerm
- 接続:USB-UART変換(3.3V系)
- 配線材:ジャンパ線(最低2本、推奨3本)
- UART:RXD0:P602 / TXD0:P603
最低限の配線:
GND(ボード) - GND(USB-UART)TX(ボード) - RX(USB-UART)RX(ボード) - TX(USB-UART)(※今回は受信しませんが、次回以降も同じ配線で使えるように接続しておくと迷いません。)
注意:GNDはボードのGNDピン同士を共通接続します。
5V系USB-UARTは使わず、3.3V系を使います。
3. 今回の変更点(差分)
- FSP ConfiguratorでUARTスタック(SCI UART)を1つ追加
- UARTの通信条件を設定
hal_entry.cに「Hello UART from RA8M2」を1回送信するコードを追加
4. 手順
4-1. FSP ConfiguratorでUARTを追加・設定する
- e² studioで対象プロジェクトを開く。
※統合開発環境e² studio+FSPのインストールからビルドまで(リンク)の4章で作成したプロジェクト configuration.xmlをダブルクリックして、FSP Configuratorを開く。Stacksタブを開き、New Stackを押す。- 一覧からConnectivity → UART(r_sci_b_uart)を選び、1インスタンス追加する。

- 追加されたg_uart0 UART(r_sci_b_uart)を選択し、プロパティを表示する。
※プロパティがどこにも見当たらない場合は、「ウィンドウ」→「ビューの表示」→「その他」→「一般」→「プロパティー」を開くと表示されます。

- 追加したUARTスタック(
g_uart0 UART (r_sci_b_uart))を選び、通信条件をそろえる。- Baud rate:
115200 - Data bits:
8 - Parity:
None - Stop bits:
1 - Flow control Support:
Disable - Channel:
0
- Baud rate:

4-2. PinsでUARTピンを割り当てる
FSP ConfiguratorのPinsタブを開く。- Peripherals→Connectivity:SCI→SCI0を選択する。
- Pin ConfigurationのRXD0:P602と、TXD0:P603を選択する。

- 設定後、
Generate Project Contentを実行する。

4-3. コードを追加する(Helloを1回送信)
hal_entry.cに以下を追加する。
#include "hal_data.h"
#include <stdbool.h>
void hal_entry(void)
{
fsp_err_t err;
static const uint8_t msg[] = "Hello UART from RA8M2\r\n";
/* UART Open */
err = R_SCI_B_UART_Open(&g_uart0_ctrl, &g_uart0_cfg);
if (FSP_SUCCESS != err)
{
while (1) {;}
}
/* UART Write (send once) */
err = R_SCI_B_UART_Write(&g_uart0_ctrl, msg, (uint32_t)(sizeof(msg) - 1));
if (FSP_SUCCESS != err)
{
while (1) {;}
}
/* 簡易待ち(送信が終わる前に次へ進まないため)
※本格的な完了待ちは次回以降(Callback/割り込み)で扱う */
for (volatile uint32_t i = 0; i < 1000000U; i++)
{
__asm volatile ("nop");
}
while (1) {;}
}4-4. TeraTermで受信確認する
- USB-UARTケーブルのUARTとEK-RA8M2を接続する。
※EK-RA8M2のPMOD2のPin2とUSB-UARTケーブルの黄線を繋げる。


- ビルドして書き込む。
- USB-UARTをPCへ接続し、WindowsのデバイスマネージャーでCOM番号を確認する(例:
COM7)。

- TeraTermを開き、該当COMを選ぶ。


- TeraTermのシリアル設定をマイコン側と一致させる(
115200, 8bit, None, 1bit, None)。

- e² studioでデバッグ実行を開始します。
TeraTermの画面にHello UART from RA8M2が1行出れば成功です。
※デバッグ方法は、「初心者のためのデバッグ入門:ブレークポイントと変数を見る」の記事を参照してください。
5. 結果
Hello UART from RA8M26. ハマりポイント/原因と対策
6-1. TeraTermに何も表示されない
まずは「PC側が正しいCOMを開けているか」→「配線が正しいか」→「Pinsが正しいか」の順で潰します。
(1) COM番号が違う / 開けていない
- 確認:Windowsの「デバイスマネージャー」→「ポート(COMとLPT)」で、USB-UARTが何番(例:COM7)か確認する
- 対策:TeraTermで同じCOMを選び直す
- よくある落とし穴:
- COMが複数あるのに別のCOMを開いている
- すでに他ソフトがCOMを掴んでいてTeraTermが開けていない
(2) 配線が違う(TX/RX逆・GND未接続)
- 確認:
- GND(ボード)↔ GND(USB-UART)
- USB-UART TXD → ボード RXD
- USB-UART RXD → ボード TXD
- 対策:1本ずつ抜き差しして、上の対応に揃える
- コツ:迷ったら「TXは相手のRXへ(交差)」だけ覚える
(3) Pins設定が違う(SCI0じゃない/別ピンになっている)
- 確認:FSP Configurator → Pins → SCI0 の RXD0/TXD0 が、記事の通りになっているか
- 対策:RXD0/TXD0の割り当てをやり直して Generate する
- よくある落とし穴:Pinsを変えたのに Generate Project Content をしていない
6-2. 文字化けする
ほぼ「通信条件が一致していない」が原因です。
(1) ボーレート不一致(最頻出)
- 確認:
- マイコン側(FSP UARTプロパティ):例
115200 - TeraTerm側:例
115200
- マイコン側(FSP UARTプロパティ):例
- 対策:両方を同じ値に揃える(まずは 115200 を推奨)
(2) 8-N-1 が一致していない
- 確認:Data bits=8 / Parity=None / Stop=1 が両方一致しているか
- 対策:TeraTermのシリアル設定を
8bit / none / 1bitに固定
6-4. 動作が不安定 / 反応しない(出たり出なかったり)
「電圧レベル」と「接触不良」が多いです。
(1) USB-UARTが5V系(3.3V未対応)
- 症状:出ない/不安定/最悪、故障リスク
- 対策:3.3V対応のUSB-UARTを使用する(3.3V系の信号レベルで接続)
(2) ジャンパ線の接触が悪い
- 症状:触ると変わる、たまに出る
- 対策:
- 別のジャンパ線に交換する
- ピンにしっかり刺さっているか確認する
- GNDを最優先で確実に接続する
6-5. ビルドは通るのに出ない
- 原因:書き込みができていない/別のプロジェクトを書き込んでいる
- 対策:書き込みログを確認し、リセット後に再度TeraTermを見る
7. 次回やること
同じUART経路で周期ログを出し、状態(INIT/IDLE/RUN/ERROR)をログで追える形に進める。
8. 関連リンク
- 基礎シリーズ:ログ出力入門(UART)
- 基礎シリーズ:GNDとは?なぜ基準点が必要なのか?
- 実験シリーズ:フェーズ0入口
- 次の実験:E0-06 状態遷移とエラー判別(INIT/IDLE/RUN/ERROR)