メモ置き場

メモ置き場です.開発したものや調べたことについて書きます.

[tex: ]

Ubuntu 18.04でシリアル通信をする

Zynqの開発をすると,最初のうちはシリアル通信を使ってZynq上のプログラムを操作したり出力を確認したりする.
シリアル通信でよく使われるのがWindowsで動作するTera Termである.Zynqの開発をしているブログはWindowsを使っていて,Tera Termでシリアル通信をしているものが多い.
Linux kernelのビルドとかでどうせvirtual machineでLinux環境を入れないし最初っからLinux使えばいいか,ということで僕はUbuntuを使って開発をしている.シリアル通信のためにいちいちWindowsマシンを使わないといけないのは面倒だったので,Ubuntuでシリアル通信をすることにした.そのときに調べたメモ.


Zynq(とかシリアル通信したい機器)と開発PCをUSBケーブルで接続する.Linuxの場合デバイスをつなぐとシリアルポート番号が振られ,/dev以下に見えるようになる.確認するには/dev/serial/by-idを見る*1

$ ls -lrt /dev/serial/by-id/
total 0
lrwxrwxrwx 1 root root 13 Jan 28  2019 usb-Digilent_Digilent_Adept_USB_Device_210351A78404-if01-port0 -> ../../ttyUSB1
lrwxrwxrwx 1 root root 13 Jan 28  2019 usb-Digilent_Digilent_Adept_USB_Device_210351A78404-if00-port0 -> ../../ttyUSB0

今回は2個のポートが何故か割り振られていた.記事を書いていて思ったのだが,もしかして1つはシリアル受信用で残りがシリアル送信用とかだったりするんだろうか?

Terminal環境でシリアル通信をするコマンドはcuscreenなどがある.cuコマンドを

sudo chmod 666 /dev/ttyUSB0
sudo cu -s 115200 -l /dev/ttyUSB0

のように試してみたところ,シリアル通信の出力が見れるようになった.しかしキー入力をしてもデバイス側で受け付けてもらえない,という不具合があった,

そこで,コマンドではなくUbuntuソフトウェアセンターで配布されているgtktermを使うことにした*2
Ubuntuソフトウェアセンターでgtktermを検索してインストールするか,

sudo apt install gtkterm

としてインストールする.

インストール後にterminalで

sudo gtkterm

として起動すると,新しいウィンドウが開いて真っ暗な画面が現れる.
f:id:okchan08:20190127233012p:plain
ConfigurationのPortをクリックして設定を開く.
f:id:okchan08:20190127233254p:plain
シリアルポートとボーレートの設定などを行う.今回Zybo-Z7-20と接続するには画面のように設定する必要があった.
(/dev/ttyUSB0をportにしていたところ何も表示されなかった.0と1のポートの違いは何だろうか?)

OKを押すとデバイスとのシリアル通信が開始される.