コンテンツにスキップ

シリアルポートのボーレート変更

1.1. ボーレートの紹介

ボーレート(Baud Rate)は、データ通信において1秒間に転送されるシンボル(変調レート)の数であり、単位はボー(Baud)です。本質的にはデータ転送速度を測定するための重要な指標であり、シリアル通信における信号変化の周波数を反映しています。簡単に言えば、ボーレートはシリアルポートが1秒間に送信できる「信号単位」の数を決定します。各信号単位は1つまたは複数のビット(bit)データを運ぶことができるため、ボーレートはビットレートと密接に関連していますが、両者は完全に同じではありません(ビットレート= ボーレート × 1シンボルあたりのビット数)。

組み込みデバイスのシリアル通信において、一般的なボーレートには9600、19200、38400、115200などがあります。デバイス間でシリアル通信を行う際、送信側と受信側のボーレートは完全に一致している必要があります。一致していない場合、データ転送時の文字化け、データ損失、さらには通信不能といった問題が発生します。これはシリアル通信の基本的な前提です。

1.2. ボーレート設定の変更

1.2.1 U-BOOTのdefconfig設定の変更

  1. 『組み込みローレベル開発/UbuntuシステムSDK/ソースコードの取得』を参照し、SDKを取得します。

  2. u-boot ディレクトリに入り、rv1126b_defconfig ファイルを変更します。

Terminal window
vim u-boot/configs/rv1126b_defconfig

1.2.1 U-BOOTのdefconfig設定の変更 図1

1.2.1 U-BOOTのdefconfig設定の変更 図1

1.2.1 U-BOOTのdefconfig設定の変更 図2

1.2.1 U-BOOTのdefconfig設定の変更 図2

1.2.2 U-BOOTのDDR BIN設定の変更

DDR BINは、DDRメモリの初期化設定ファイルです。一部のデバイスでは、シリアルポートのボーレート設定がDDR BINと関連付けられているため、ここの設定を変更しないと、デバイス起動後にシリアルポートが正常に機能しない可能性があります。その他の設定要件がある場合は、ddrbin_tool_user_guide.txtガイドをお読みください。変更手順は以下の通りです:

  1. RV1126BMINIALL.ini 設定の確認

rkbin/RKBOOT ディレクトリを開き、RV1126BMINIALL.ini 設定を確認します。

13.2. 2 U-BOOTのDDR BIN設定の変更 図3

1.2.2 U-BOOTのDDR BIN設定の変更 図3

初期デフォルトの .bin ファイル名を確認します:rv1126b_ddr_1332MHz_v1.06.bin

  1. 新しい .bin ファイルのコピー
Terminal window
sudo cp rv1126b_ddr_1332MHz_v1.06.bin test.bin
  1. ddrbin_tool を使用した設定

rv1126b_ddr_1332MHz_v1.06.bin ファイルの設定を取得します。

Terminal window
cd rkbin/tools
./ddrbin_tool.py rv1126b -g gen_param.txt
../bin/rv11/rv1126b_ddr_1332MHz_v1.06.bin

1.2.2 U-BOOTのDDR BIN設定の変更 図4

1.2.2 U-BOOTのDDR BIN設定の変更 図4

gen_param.txtを開くと詳細な設定パラメータを確認できます。以降は、このデフォルト設定に基づいて変更を行います。

1.2.2 U-BOOTのDDR BIN設定の変更 図5

1.2.2 U-BOOTのDDR BIN設定の変更 図5

ddrbin_param.txt の設定を行うことで、.binファイルの設定を変更します。

1.2.2 U-BOOTのDDR BIN設定の変更 図6

1.2.2 U-BOOTのDDR BIN設定の変更 図6

Terminal window
./ddrbin_tool.py rv1126b ddrbin_param.txt ../bin/rv11/test.bin

1.2.2 U-BOOTのDDR BIN設定の変更 図7

1.2.2 U-BOOTのDDR BIN設定の変更 図7

💡 注意 : 通常、ddrbin_param.txt内のパラメータ値は空(空白)になっています。空値は対応する .binのデフォルト値を意味します。コマンドを使用することで、test.binファイルの設定が正しいか確認できます。

RV1126BMINIALL.ini 設定の変更

Terminal window
vim rkbin/RKBOOT/RV1126BMINIALL.ini

1.2.2 U-BOOTのDDR BIN設定の変更 図8

1.2.2 U-BOOTのDDR BIN設定の変更 図8

1.2.3 U-BOOT設定のコンパイル

  1. U-BOOT設定をコンパイルします
Terminal window
./build.sh uboot

1.2.3 U-BOOT設定のコンパイル 図9

1.2.3 U-BOOT設定のコンパイル 図9

  1. コンパイル済みのU-BOOT設定をファームウェアツールに更新します。

1.2.3 U-BOOT設定のコンパイル 図10

1.2.3 U-BOOT設定のコンパイル 図10

この時点で、これら2つの設定ファイルのみを再書き込みした場合、シリアルコンソールのU-BOOT部分の出力は正常に表示されるようになりますが、カーネル(kernel)部分の出力は依然として文字化けする現象が確認できます。

1.2.3 U-BOOT設定のコンパイル 図11

1.2.3 U-BOOT設定のコンパイル 図11

したがって、すべてが正常に表示されるようにするために、引き続きカーネルの設定を行う必要があります。

1.2.4 カーネル(Kernel)設定の変更

  1. rv1126b-nano.dts 設定の変更
Terminal window
vim kernel_dev/arch/arm64/boot/dts/rockchip/rv1126b-nano.dts

1.2.4 カーネル(Kernel)設定の変更 図12

1.2.4 カーネル(Kernel)設定の変更 図12

  1. カーネル設定のコンパイル
Terminal window
./build.sh kernel

1.2.4 カーネル(Kernel)設定の変更 図13

1.2.4 カーネル(Kernel)設定の変更 図13

カーネルコンパイルのプロセスに不慣れな場合は、『組み込みローレベル開発/UbuntuシステムSDK/kernel』の記事をご参照ください。

  1. コンパイル済みのカーネル設定をファームウェアツールに更新します。

1.2.4 カーネル(Kernel)設定の変更 図14

1.2.4 カーネル(Kernel)設定の変更 図14

1.2.5 再書き込み

  1. 更新したすべての設定をボードに再書き込み(フラッシュ)します。

1.2.5 再書き込み 図15

1.2.5 再書き込み 図15

  1. 最終的に、シリアルコンソールの出力がすべて正常に表示されるようになります。

13.2. 5 再書き込み 図16

1.2.5 再書き込み 図16