【入門】Linux機にUSB-シリアル変換ボードをつなげてみる【備忘録】

電子工作界隈では超有名パーツであるFTDI社製のチップを載せたUSB-シリアル変換ボードを、このたび Linux機に接続してみた。

今回は秋月電子通商のFT2232Dを Ubuntu10.04 をインストールしたPCにUSB接続した。FT2232Dのシリアル側 1ch にはAVR ATmega88pを接続し、「Hello World!」の文字列を出力し続けるプログラムを書き込んでいる。この文字列をPC側コンソールで確認できるまでの手順を述べる。※今回はrootユーザーですべての作業を行っている、Ubuntuにもかかわらず・・・。

まずは、PCとFT2232DをUSBケーブルで接続する。dmesg コマンドでうまく接続されているか確認する。


[ 343.788031] usb 3-1: new full speed USB device using uhci_hcd and address 2
[ 344.061345] usbcore: registered new interface driver usbserial
[ 344.061360] USB Serial support registered for generic
[ 344.061392] usbcore: registered new interface driver usbserial_generic
[ 344.061394] usbserial: USB Serial Driver core
[ 344.127554] USB Serial support registered for FTDI USB Serial Device
[ 344.127599] ftdi_sio 3-1:1.0: FTDI USB Serial Device converter detected
[ 344.127629] usb 3-1: Detected FT2232C
[ 344.127631] usb 3-1: Number of endpoints 2
[ 344.127633] usb 3-1: Endpoint 1 MaxPacketSize 64
[ 344.127635] usb 3-1: Endpoint 2 MaxPacketSize 64
[ 344.127637] usb 3-1: Setting MaxPacketSize 64
[ 344.129223] usb 3-1: FTDI USB Serial Device converter now attached to ttyUSB0
[ 344.129246] ftdi_sio 3-1:1.1: FTDI USB Serial Device converter detected
[ 344.129283] usb 3-1: Detected FT2232C
[ 344.129285] usb 3-1: Number of endpoints 2
[ 344.129288] usb 3-1: Endpoint 1 MaxPacketSize 64
[ 344.129290] usb 3-1: Endpoint 2 MaxPacketSize 64
[ 344.129292] usb 3-1: Setting MaxPacketSize 64
[ 344.130174] usb 3-1: FTDI USB Serial Device converter now attached to ttyUSB1
[ 344.130199] usbcore: registered new interface driver ftdi_sio
[ 344.130202] ftdi_sio: v1.6.0:USB FTDI Serial Converters Driver

なんか、こんな感じのものがかいてあったら、とりあえずおk。
ついで /dev 以下に ttyUSB0 と ttyUSB1 があることを確認する。
root@ubuntu:~# ls -l /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 2011-02-24 22:09 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1 2011-02-24 21:50 /dev/ttyUSB1

ハードウェア的なことはこれでおkなので、次はAVRが投げてくる文字列を受け取ってみる。
Windowsでいうところの Tera Term みたいなものは、cuコマンドらしい。デフォルトではインストールされていないようなのでapt-get install する。

root@ubuntu:~# apt-get install cu

んで、cuコマンドを実行。-sオプションでボーレート、-lで使用デバイスを指定する。今回はAVRに書きこんだプログラムばボーレート9600bpsであるので次のようなコマンドを打ち込む。

root@ca:~# cu -s 9600 -l /dev/ttyUSB0
cu: open (/dev/ttyUSB0): Permission denied
cu: /dev/ttyUSB0: Line in use

エラー。パーミッションでなーいど。今はルートなのでグループをdialout -> rootに変更

root@ca:~# chgrp root /dev/ttyUSB0

もういっちょ。
root@ca:~# cu -s 9600 -l /dev/ttyUSB0
Connected.
orld !
Hello World !
Hello World !
Hello World !
Hello World !
Hello World !
Hello World !
Hello World !
Hello World !
Hello World !
Hello World !

うん、とれてるとれてる。

ということで、今回はここまで。

カテゴリー: ATmega88P, AVR, シリアル通信, Linux タグ: , , , パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中