Raspberry Pi Zeroとのシリアル通信


参考ページ


使用機器・システム環境

  • ターゲット … Raspberry Pi Zero W (ピンヘッダ実装済み)
  • ホスト … Windows10 64bit
  • ターミナル … TeraTerm
  • USB-シリアル … 適当なもの

ホスト側セットアップ

USB-シリアル

USB-シリアルケーブルをPCに接続します。Windowsの場合おそらく自動でドライバがインストールされると思います。デバイスマネージャー上で以下のように認識されていればOK

Tera Term

プロジェクトページから最新版をダウンロード (.zip版でも化) してインストール。ttermpro.exeを起動して、USB-SERIALポートが認識されていることを確認します


Raspberry Pi側セットアップ

シリアルコンソール (UART)を有効化するために、/boot/config.txtに設定を追加します

% sudo vi /boot/config.txt
+ # Enable UART
+ enable_uart=1

(ネットワーク接続が上手くいかずに、コンソールでデバッグする場合はホストPCでSD上のファイルを編集します)


ハードウェア接続

D-SUB9のメスコネクタがなかったため、ジャンパ線で直接ターゲットとUSB-SERIALケーブルを接続してみます

  • D-SUB9のピン配置はこちら
  • Raspberry Pi Zeroのピンヘッダのピン配置はこちら

接続する必要があるのは6 (GND)、8 (TXD)、10 (RXD)の3本です

こちらをそれぞれD-SUB9の 5(GND)、2(RXD)、3(TXD)に接続します。Raspberry Pi側のTXDをRXDに、RXD側をTXDに接続するように注意します


接続確認

Teraterm起動

Teratermを起動し、シリアルポートを設定します。

  • 上記で確認したUSB-SERIALを選択して起動
  • メニューからSetup -> Serial port ...を選択
  • Speedを115200に設定

Raspberry Pi Zeroの起動

上記設定完了後、Raspberry Pi Zeroの電源を投入すると、コンソールに出力が表示されるはず … が何故か文字化けした出力が表示されるばかり …

色々調べたところ、どうも論理が反転しているっぽいということに気づいて、原因としては使用したUSB-SERIALコンバータがUARTではなく、RS-232C仕様 (CH340R?)っぽいという結論に達しました。別途FDTIチップのコンバータを発注したので、届いたら確認してみます

おすすめ