Top > USB-IO

広告

もともとはいろいろな意味で有名なモルフィー企画が開発したUSB-パラレル(8+4bit)変換デバイス。
USBデバイスを作ろうとすると簡単なデバイスでもUSBの事をいろいろ勉強しなくてはならないが、このUSB-IOを使うと、とても簡単にUSBデバイスが作れる。

モルフィー企画は閉じてしまったので、現在買おうとするなら

で買える。

でも出力bit数は少ないがFT245系でも同様のことをできるので、入手、扱いやすさの面でFT245系を使ったほうが良さそう。

ハード

8bitのport0と4bitのport1があって両方使えば12bit出力として使うことができる。
port0の方は仕様上殆ど電流を出す事ができないので、入力インピーダンスの高いデバイスにしか繋げない。
ところが、吸い込み(流れ込み)の場合は数mA程度流せるので、LEDなどを駆動することができる。 port1の方は吐き出しも吸い込みもmAオーダ流せる。

準備・ドライバのインストール

バケさんの趣味の部屋libusbを使ったドライバを使わない方法も紹介されている。
ここでは、ドライバを使う方法を述べる

いとーひさしさんのページからUSB-IO driver for Linux(閉鎖?)(ミラー?)をダウンロードしてくる。kernel 2.4のパッチと2.6のドライバがある。
READMEの通りにやれば大丈夫だが、カーネル2.6.15以上の場合は「morphy-usbio.c」の中の

.mode = S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH,

という行を削除するかコメントアウトする必要がある。

みそは「hid-core.c」を書き換えてカーネルの再構築をするのと「/etc/hotplug/usb.usermap」を書き換えることだろう。その辺を注意してREADMEの通りにやれば大丈夫。

うまくいくとUSB-IOを繋げたときに

/dev/usbio0

というデバイスファイルが自動的に現れる。 失敗すると、認識されないか

/dev/usb/hiddev0

というデバイスファイルが現れる。

繋げた後に

# dmesg | tail

とやってメッセージを表示すると

usb 5-4.1: new low speed USB device using ehci_hcd and address 8
hiddev96: USB HID v1.00 Device [Km2Net          Km2Net USB-IO Ver1.0] on usb-0000:00:1d.7-4.1
usbcore: registered new driver morphy-usbio

とでる。

使いかた

/dev/usbio0がrootかrootのグループに属しているユーザーしかアクセスできないので取り合えずrootになる。そしておもむろに

# echo 010101010101 >/dev/usbio0

とやるとその通りに出力され、LEDなどが繋げてあれば光る。

perlでやるときは

$dev="/dev/usbio0";
$data="010101010101";
open(USB,">$dev");
print USB $_[0];
close(USB);

てな感じで良い。ただし、実行はrootかrootのグループに属しているユーザーしかできない。実行しても何も起こらないか、エラーがでる。
rootになるのが面倒なら自分をrootグループに入れるとか、セキュリティ上rootグループに入るのを避けたいなら「fakeroot」を使う。


広告

Reload   Diff   Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes
Last-modified: Wed, 04 Jan 2012 23:12:03 HADT (3140d)