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ケーブルを接続してみます
接続する必要があるのは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チップのコンバータを発注したので、届いたら確認してみます
最近のコメント