Top > FT245 広告
*USB-パラレル+シリアル変換 [#sde127a3] FT245系(FT245AMやFT245RLなど)は[[Future Technology Devices International Ltd:http://www.ftdichip.com/]](FTDI)のUSB−シリアル(RS232C)+パラレル(8bit、D2XXと呼ばれている)変換チップ。~ [[秋月電子通商:http://akizukidenshi.com/]]などで入手可能。組み立て済みのモジュールを売っているので使い易い。 シリアルはFT232系と同じなので、[[FT232のページ>FT232]]を参考にしてほしい。~ ここではパラレル変換の方を述べる。 *準備 [#w1102826] まずは、D2XX(パラレル出力)用のライブラリを取ってくる。~ どうもファイルシステムとして機能するため特にドライバは必要としならしい。カーネルの再構築も必要ない。 ライブラリには2種類ある。~ ひとつは[[FTDI:http://www.ftdichip.com/]]が配布している公式版。もうひとつは、オープンソースのライブラリで、「[[libFTDI]]」というもの。~ [[libFTDI]]はRPMが用意されていてDebianの公式パッケージにもなっているので公式版の方がインストールの手間が多い。~ どっちがいいかとなると、Windows用のプログラムも作る気があるなら公式版を使ったほうが関数の互換性があっていいかも。~ やりやすいのは[[libFTDI]]だと思うし新しいカーネルにも対応が早そうなので[[libFTDI]]を推奨する~ 「[[libFTDI]]」に関しては[[libFTDIのページ>libFTDI]]で述べるのでここでは公式版のD2XXライブラリについて述べる *公式版D2XXライブラリのインストール [#a55c1d83] カーネルバージョン2.4用らしいけど、2.6でも動く。 -[[D2XX用ファイル置き場:http://www.ftdichip.com/Drivers/D2XX.htm]]からLinux用D2XXライブラリをダウンロードする。~ -適当な場所に展開(解凍) -インストールは http://www.ftdichip.com/Drivers/D2XX/Linux/README.dat を参考。以下簡単な流れ -ライブラリを移動 cp libftd2xx.so.0.4.13 /usr/local/lib/ -シンボリックリンクを作成 cd /usr/local/lib/ ln -s libftd2xx.so.0.4.13 libftd2xx.so ディストリビューションによっては「libftd2xx.so.0」。Debianではこうだった。 -/usr/libにも一応シンボリックリンクを作成 cd /usr/lib ln -s /usr/local/lib/libftd2xx.so.0.4.13 libftd2xx.so または ln -s /usr/local/lib/libftd2xx.so.0.4.13 libftd2xx.so.0 -ファイルシステムとしてマウントされるように「/etc/fstab」に none /proc/bus/usb usbfs defaults,mode=0666 0 0 と記述(2.6からusbdevfsではなくusbfs)すでにマウントされているかも -mount -a としてマウント。~ というのが、[[README.dat:http://www.ftdichip.com/Drivers/D2XX/Linux/README.dat]]の内容だが、すでにfstabやmtabに「/proc/bus/usb」をマウントするように記述されている場合は mount: none already mounted or /proc/bus/usb busy mount: according to mtab, procbususb is already mounted on /proc/bus/usb というエラーが出るので、上の2ステップ(fstabへの記述)は不要。 *接続してみる。 [#lc3f8bfd] つないだ後、 # dmesg を実行すると usb 7-3.1: new full speed USB device using ehci_hcd and address 5 usb 7-3.1: configuration #1 chosen from 1 choice ftdi_sio 7-3.1:1.0: FTDI USB Serial Device converter detected drivers/usb/serial/ftdi_sio.c: Detected FT232BM usb 7-3.1: FTDI USB Serial Device converter now attached to ttyUSB0 ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0ftdi_sio 7-3.1:1.0: device disconnected usb 7-3: reset high speed USB device using ehci_hcd and address 3 usb 7-3.1: new full speed USB device using ehci_hcd and address 6 usb 7-3.1: configuration #1 chosen from 1 choice ftdi_sio 7-3.1:1.0: FTDI USB Serial Device converter detected drivers/usb/serial/ftdi_sio.c: Detected FT232BM usb 7-3.1: FTDI USB Serial Device converter now attached to ttyUSB0 と表示される。これはシリアル変換部分なので表示は[[FT232]]系と同じ。 # lsusb では Bus 007 Device 013: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC という表示だった。 ftdi_sioというシリアル変換用のモジュールが動いているとエラーになるみたいだが、僕が使っている分にはこのモジュールが動いていても問題なさそうだった。~ もしエラーが出るようなら # lsmod で動いているモジュールを表示して、ftdi_sioがあるようなら rmmod ftdi_sio とやって止める。 *プログラム作成 [#cb04c0bd] 両方のライブラリともサンプルプログラム(C言語で記述されている)が添付されているので、それをコンパイルして使ってみる。~ ただし''rootでないとデバイスにアクセスできない場合がある''ので注意。 コンパイルは、公式版の場合はサンプルプログラムのMakefileを見ればいい。~ *LEDを光らせてみる [#eed2f1b0] それぞれのbitで直接LEDを駆動できるので、1kΩぐらいの抵抗を介して、LEDを接続するとLEDをON-OFFできる。~ ただ、USBに接続した時点(初期)状態で全bitに5Vが出ている。でも、出力電流が少ないのかLEDはほとんど光らない。 ただ、USBに接続した時点(初期)状態で全bitに5Vが出ている。でも、出力電流が少ないのかLEDはほとんど光らない。~ 使う場合はプルダウンする必要があるだろう。 #ref(FT245_LED.jpg) 広告 |