月別アーカイブ: 2016年4月

LinuxPCで秋月のUSB-シリアル変換ケーブルを使う

秋月電子通商の「USB-シリアル変換ケーブル (スケルトン)」(M-00720)は、サポートOSとしてWindowsクライアントOSしか記載されていない。

個人ではもっぱらLinuxPCを利用しているため、このPC環境で利用できないか試してみた。

本書で試してみたLinuxPCの環境は下記のとおりである。

  • PC本体:Lenovo Thinkpad X61s(USBポートのみでシリアルポートはない)
  • OS:Debian-7u6(Wheezy)

 

1.とりあえず接続してみた

OSデフォルト(別のところでカスタマイズはしているが)状態のままで、当該ケーブルをつなげてみて、OSが認識するかどうかを確認してみた。

接続後、以下のコマンドを実行してみた。

①dmesg

[1051828.140176] usb 5-2: New USB device found, idVendor=067b, idProduct=2303
[1051828.140185] usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[1051828.140192] usb 5-2: Product: USB-Serial Controller
[1051828.140198] usb 5-2: Manufacturer: Prolific Technology Inc.
[1051828.142283] pl2303 5-2:1.0: pl2303 converter detected
[1051828.154334] usb 5-2: pl2303 converter now attached to ttyUSB0

上記のような出力が表示されました。(システム起動後に当該ケーブルを接続したのち、上記コマンドを実行すると、その最後にUSB関連と思われるログが出現するので、見つけやすいと思われます)

上記ログから、”USB-Serial Controller”というキーワードが確認できるので、この部分が接続したUSBシリアル変換ケーブルだという事の判断がつきます。

そして、この部分から、このUSBシリアル変換ケーブルに割り当てられたデバイスファイルが、”/dev/ttyUSB0”であるという事を把握すること。

②lsusb

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0411:01ee BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM2 Wireless LAN Adapter [Ralink RT3070]
Bus 005 Device 003: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

上記出力のうち、”Bus 005 Device 003: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port”から、

USBバス番号⑤番に、”Prolific Technology, Inc. PL2303 Serial Port”のシリアルポート装置が接続されているということが裏付けられます。

こちらのコマンドは、あくまでdmesgコマンドの出力から推察した当該デバイス情報のウラを取るための補足みたいなものです。

以上より、本環境(というよりも、ほとんどのLinuxディストリビューションと、当該変換ケーブルで使用されているICが”PL2303”であれば)においては、特に外部からデバイスモジュールをインストールなどの手間をかけずとも、そのままプラグアンドプレイで認識することができる。

ただし、認識はしたが、実際にこの接続を利用する場合、シリアル通信コンソールアプリケーションプログラムが必要になる。(Windowsであれば、「Tera Term」などに当たるもの。)

 

2.シリアル通信コンソールアプリのインストール

Linuxでは、CLIコマンドプログラムとして、”CU”と”minicom”がある。これをインストールしないことには、この接続を介してのシリアル接続通信が実現できない。

これらのプログラムは、Debianの場合は、ディストリビューションの標準パッケージとして存在するので、以下のコマンドを実行して、インストールすることができた。

# apt-get install cu

# apt-get install minicom

3.シリアル通信コンソールアプリの実行

<共通>

シリアル通信ポートを使用するにあたって、そのデバイスファイル”/dev/ttyUSB0”に対して、読み込み・書き込み権限を追加する必要がある。

pi@yspc912:/proc$ ls -l /dev/ttyUSB0
crw-rw—T 1 root dialout 188, 0  4月  3 00:08 /dev/ttyUSB0
pi@yspc912:/proc$ sudo chmod 666 /dev/ttyUSB0
pi@yspc912:/proc$ ls -l /dev/ttyUSB0
crw-rw-rw- 1 root dialout 188, 0  4月  3 00:08 /dev/ttyUSB0

参考)上記を実施せずに、コンソールアプリを実行しようとすると、下記のようなエラーが出力されて使用できない。

以下は、”cu”で実行した場合のエラーメッセージ

cu: open (/dev/ttyUSB0): Permission denied
cu: /dev/ttyUSB0: Line in use

以下に、それぞれのシリアル通信コンソールアプリの実行操作を記す。

<cuの場合>

% sudo cu -s 9600 -l /dev/ttyUSB0
と入力する(ボーレートとデバイス名は、接続機器にあわせて指定のこと)。
上記コマンド実行後,通信に成功すると,
Connected.
と返してくる。これで通信確立。
もし,
Line in use
とか返してきた場合,前述の<共通>に示した手順が実施されていない可能性があるので,もう一度チェックすること。
なお、プログラム終了(通信切断)の際は,
~.(チルダとドットを入力して、<Enter>)
と入力すると,数秒後に切断される。