玄人志向”1P-LPPCI2”(PCI-パラレルポート)の増設...2枚目!!


前回の実験で玄人志向”1P-LPPCI2”が入出力で使えそうだと解りました。が入荷も取り寄せだし、壊れては大変ともう一個予備に頼んでおいた物が来ました。

ま〜このまま棚にしまってしまえばよかったのですが?え?待てよ!。二枚認識できればこれっておいしいな。。。と思ってしまいました。

確かに、コントロールポート、データポートはCプログラムから”_out、_in”で8ビットデータは送れるのですがアドレス用の74LS273でラッチするのにちょっと余分なやり取りが必要です。たとえば、アドレス"00101010"に"11111111"と書きたいとします。この場合

@データポートにアドレスを出力
Aコントロールポートにラッチ信号出力でデータバス上のアドレス信号をLS273に保持
Bデータポートにデータを出力
C書き込み信号出力

これをアドレス専用に1P-LPPCI2を1枚、データ専用に1P-LPPCI2を1枚と別々に接続すれば、
@1枚目の1P-LPPCI2のデータポートにアドレスを出力(データバスとモーションチップアドレスバスは直結です。)
A2枚目の1P-LPPCI2のデータポートにデータを出力
Bいずれかの1P-LPPCI2のコントロールポートから書き込み信号出力

1回分だけですが得します。(笑)たかが1回分、されど1回分だと自分では思うのですが.....


ということで気がつくと既にマザーボードに1P-LPPCI2が2枚実装されてたりします。(汗)


こちらがインストール前のデバイスマネージャ状態。


そしてこちらがインストール後のデバイスマネージャ状態です。LPT3になったようです。変えられますが私のアプリからはデータアドレスを直に指定してますのでこのままにしました。よく見るとデバイス名"OX16PCI95x"が"OX16PCI952"になってます。お〜。これ末尾いくつまで行くんだ。PCIバスは貴重なんだけど1P-LPPCI2が最大何枚認識するか?気になる私でした。



さ〜変な疑問は持たないで。。。プログラムの先頭でアドレスを追加します。さてさてどうなるかな?デバイスドライバもGIVEIOも競合しないかな?



お!データアドレスに"10"を出力しましたが素直に出ました。(注:5VシンクでLED実装の為、出力0がLedOnになってます。)入力状態も問題無しでした。
意外にあっさり行きましたが、2枚目OKです。今現在C#でメイン部分はプログラミングしてますがIO部分はC言語でDLLにしてます。この部分の作りこみの幅が広がりました〜。妄想が広がったとも言いますが.....(汗)。まだまだ1P-LPPCI2遊びは今後も続きそうです。



PC

サイト運営について

inserted by FC2 system