I/Ocrest PCI Multi I/O Controller Card KF-PIO9865-2S1P MCS9865


<最終更新2013/4/1>

この記事の動作環境は、

パソコン PC/AT互換機
OS Debian Squeeze (i386)
PCIバス用 パラレル/シリアルI/O増設ボード KF-PIO9865-2S1P
搭載チップ MCS9865

の組み合わせとなります。

↓この写真のコネクタは完全に逆差しになっているので要注意。ただし、新しいロットは写真が差し替えられているようです。

増設ボードのメーカーページ(IOCREST)
MCS9865チップのメーカーページ(ASIX)


取り付け


デバイスドライバ

パラレルポートに関してはデバイスドライバはカーネルに最初から入っており
プラグアンドプレイで使用出来ます。
シリアルポートはデバイスドライバ(カーネルモジュール)の組み込みが必要になります。

手順1 何らかの方法でドライバソースを入手する

商品を正規購入したのであれば付属CDの中に入っています。
ジャンク品等で基板のみ入手した場合はチップメーカーのページでもドライバソースを配布しているので
探してみてください。

チップメーカーのダウンロードページ

手順2 カーネルソース、カーネルヘッダをインストールする

Debian Squeezeの場合は、

linux-source-2.6.32
linux-headers-2.6.32-5-686

の2つのパッケージをインストールしておきます。

~$ su ;管理者権限になる
# aptitude install linux-source-2.6.32 linux-headers-2.6.32-5-686

インストールが終わったら通常ユーザに戻っておきます
# exit ;通常ユーザに戻る

手順3 ドライバソースをmakeする

入手したドライバソースは.zip .tar等、圧縮ファイル化されていると思います。
これを展開してから自分のホームディレクトリなどに配置しておきます。
そして端末からコマンドを打ち込みます。

~$ cd /home/○○○○(あなたのユーザ名)/MCS9865_Linux_driver_v1.0.0.12 ;ドライバソースが置いてあるディレクトリに移動、ドライバのディレクトリ名・バージョンは適宜読み替えてください
~$ make

makeが終わったら管理者権限になってからmake installします

~$ su ;管理者権限になる
# make install

エラーが出なければ/dev以下にttyD0、ttyD1というデバイスファイルが出来上がっているはずです。
これがシリアルポートになります。


パラレルポートの使い方

パラレルポートのアドレスは端末から、

~$ lspci -v

と打ち込むと下のような結果が出力されると思います。
この時のparallel controllerのところを見てアドレスを調べてください。
このアドレスを各種プログラムから指定することになります。

<注意>パラレルポートを扱う時は管理者権限になってからプログラムを実行します。

テスト回路1


bit0からbit7までLEDを接続したもの。

↓ 例1 全bitを1秒ごとにON/OFFする c言語ソースリスト led.c サウンドファイル start.wav

↓ 例2 2進数で0から1ずつ増えていき、'11111111'になったらカウントストップする c言語ソースリスト led2.c サウンドファイル start.wav サウンドファイル end.wav

テスト回路2


16桁2行液晶を4bitモードで制御するもの。

↓ 例3 液晶画面に「Hello World! Debian GNU/Linux」と表示する c言語ソースリスト lcd.c サウンドファイル start.wav サウンドファイル end.wav


シリアルポートの使い方

GtkTermから使う方法

GtkTerm自体の説明はこちらをご覧ください。

http://debian.ina-ka.com/gtkterm/gtkterm.html

GtkTermではttyD0やttyD1といったデバイスファイル名が使えません。(予約語として予約されてない?)
そこで便宜的にシンボリックリンクを張って使います。

~$ su ;管理者権限になる
# ln -s /dev/ttyD0 /dev/ttyUSB0

シンボリックリンクを張るとGtkTermのポート選択でttyUSB0を選べるようになるのでそれを選択します。
そうするとttyD0をttyUSB0として使えるようになります。
ttyD1の場合も同じようにttyUSB1にシンボリックリンクを張れば使えるようになります。

GtkTermではなくその他のプログラムや自作プログラム等から使用する場合もリンクを張らないと使えません。
これはOS側のシリアルポートに関する取扱いの事情があるのかもしれません。
なお、パラレルポートの場合と違ってシリアルポートを使用する際は管理者権限になる必要はありません。
この辺の事情は、古いUnixの時代からの仕組みがLinuxにも続いているのだと思います。


トップページへ戻る