スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

LinuxCNCのHALとパラレルポートテスター

LinuxCNCのWiki内にあるParallel Port Testerとゆう文字通りパラレルポートをテストするHalファイルと、PyVCP(HAL visual control panel in Python)で書かれたxmlファイルを使用してパラレルポートの入出力のテストをしてみました。



PCについているパラレルポートを使用してもできるのですが、今回はPCIスロットに増設したPCI-パラレルポートカードのチェックを兼ねてます。


PCのマザーボードはインテルのD2700MUD

少々古いのですがLinuxCNCを動かすには問題ないレベルのボードではないかと思います。


今なら、Core2Duoの事務用PCでパラレルポートの付いているものを調達するのが安価にCNC専用PCを構築出来るのでは?と思います。

んで、LinuxCNC自体はシマリス技研さんのLinuxCNCインストールメディアの配布のページ内にあるLiveDVDイメージの物を使用しております。



まず、PCI-パラレルポートカードを用意します。


AREAのSD-PCI9805-1PLです。

Moschip MCS9805を使用してます。

Linuxはサポート対象外ですが特にドライバをインストールせずとも、動きました。

一応デバイスメーカーのドライバダウンロードページを貼り付けておきます。
MCS9805 Drivers Download

対応転送方式は、SPP(Standard Parallel Port)、PS2、EPP(Interfacing the Enhanced Parallel Port)、ECP(Interfacing the Extended Capabilities Port)となっておりますが、普通にパラレルポートとして使用するのでSPPモードでok。

BeyondLogicより引用。


シマリス技研さんのLinuxCNC日本語ドキュメントプロジェクト‎内のParallel Port Driver パラレルポート ドライバにある(英文はLinuxCNCのマニュアルページにあります。)パラレルポートのブロック図のようにInputが多いOutputが多い設定双方とも今回のPCIパラレルポートでは設定可能でした。

パラレルポートテストではOUTが多い設定での、テストです。
INが多い設定の場合Halファイルxmlファイル双方とも書き換えが必要です。


PtestPic_3.jpg
空きパターンがありますね。RS-232CインターフェースICと、シリアルポート用の出力ピンヘッダを取り付けるのかな?

PtestPic_4.jpg

画像のように、セラミックコンデンサが外れてましたが、外れた状態で作動してました^^;
バイパスコンデンサだと思います。。







玄人志向1P-LPPCI4です。


PLX Technology(旧Oxford)社 OXuPCI952を使用してます。

玄人志向の製品なので特にサポートの資料はなかったと思うのでチップメーカーサイト内の情報を頼りに^^;

対応転送方式は、SPP(Standard Parallel Port)、EPP(Interfacing the Enhanced Parallel Port)、ECP(Interfacing the Extended Capabilities Port)となっております。


チップメーカーのOXuPCI952Product Briefを見てみると、シリアルポート用の2つのUART(非同期シリアル通信)と、パラレルポート、11ポートのGPIOと、パラレルポートだけに使うのはもったいないくらいの高機能。

ただのパラレルポートとして使用するには特に必要ないと思いますが、設定を記憶しておくためのEEPROMも付いていてEPPモードとか他の機能を使うときはEEPROMに書き込むようです。

データシートを読んで色々と機能を使えるようにしても面白いかも。。

LinuxCNC Support Forum 内の書き込みにEPPモードによる外部モーションコントローラーの使用時にこのOXuPCI952を推奨しているボードもあるようです。



PtestPic_5.jpg
このボードも空きパターンが結構ありますね。こちらには水晶振動子とEEPROMが載ってます。RS232CインターフェースICとシリアルポート用のピンヘッダが取り付けれるのかな?
水晶発信器がついてるのでデータシートをよく読めば、URATとGPIO使えるのかしら?

PtestPic_6.jpg
PtestPic_7.jpg
設定を書き込んでおくEEPROMですね。どーやって書き込むんでしょうか^^;


ついでに、D2700MUDにはそのまま取り付けることができないPCI-Eのパラレルポートです。
AREASD-PE9900-1PLです。
もちろん対応OSにLinuxの名前はありません。が、多分動くのでは?と。。

使用チップはMCS9900CVでチップメーカーサイトのページにはPCIe to Multi I/O (4S, 2S+1P) Controllerとあります。
また、このチップ自体カスケード接続(多段接続)が可能なようです。

PtestPic_8.jpg
PCIカードに比べて奥行きが短いですね。
空きパターンはカスケード接続用の部品を取り付けるスペースでしょうかね。。上記2枚のPCIカードと同じくRS232CインターフェースICとシリアルポート用のピンヘッダを取り付けるであろうパターンもあります。


PtestPic_9.jpg
新し目の?チップなので小さいです。右側に設定記憶用のI2C接続のEEPROMがありますね。

いつになるか解りませんがそのうち?テストしたいと思ってます。。



パラレルポートテストですが、パラレルポートカードを取り付けてUbuntuを起動。

メニューバーの「アプリケーション」をクリックし、アクセサリ>端末で端末を起動。

lspci -v (Enter)

と入力。

すると、PCIにぶら下がっているデバイスのリストが出てきます。
下の画像は、SD-PCI9805-1PLを取り付けた時のものです。

Ptest-0.png

この中の一番下のデバイス、「NetMos Technology PCI 1 port parallel adapter」とゆうのが今回取り付けたPCI-パラレル・ポートカードで、「I/O ports at xxxx [size=8]となっているxxxxのところがポートアドレスです。


このポートアドレス、使用するマザーボード、PCIカードによって数値が違います。
今回はこの中の「1030(正確には16進数なので0x1030)」で動きました。


Parallel Port Testerより、ptest.halとptest.xmlをダウンロード、メニューバーの「場所」から「ホーム・フォルダ」を選びその中へダウンロードした2つのファイルを入れます。

そして、ptest.halをダブルクリックしてテキストエディタにてファイルを開きます。

下画像は開いた所です。

一行目のオレンジ色で選択されている部分がポートアドレスです。

マザーボードにパラレルポートが付いているPCだと、大抵halファイルをダウンロードした「0x378」で動くと思います。


Ptest-1.png

今回は、PCIスロットに挿したパラレルポートを使用するので上記で確認した「0x1030」と書き換えし、保存します。

Ptest-2.png


端末に戻り、下の画像のように

halrun -I -f ptest.hal

と入力、エンターキーを押します。

Ptest-3.png



すると、ptest.halファイルを使用しHALが起動してPortTestとゆうウインドウが開きます

また、端末の入力表示が「halcmd:」へ変わります。

左側のOutputsのPin01を押すと、すぐ右のLEDを模した表示が赤から緑に変わります。

この時、パラレルポートの1番ピンの出力がHighになります。

Outputの部分はすべて同じように動きます。

また、Inputの部分は入力で、ウインドウのピン番号をLowに落とす(グランドに繋ぐ)と緑の表示から赤の表示に変わります。


テスターかオシロスコープで確認しましょう。

Ptest-4.png


この画像はSD-PCI9805-1PLパラレルポートカードにPin1にオシロのプロープを繋いでPin1ボタンをポチポチした画像です。

PtestPic_1.jpg

5.15Vも出てますね^^;


ウインドウを閉じてもHALは終了しないので、終了時には、

exit

と入力しエンターキーを押します。




この下の画像は1P-LPPCI4を繋いだ時の物です。

オレンジ色に選択されているところが設定したI/Oポートのアドレスです。

上記の場合と数値は違いますが、同じく正常時作動しました。


Ptest-5.png

Ptest-6.png


1P-LPPCI4を使ってpinボタンをポチポチした画像です。

PtestPic_10.jpg

3.5V弱しか出力されてません。SD-PCI9805-1PLと出力電圧が違いますね。


一応パラレルポートの出力電圧の規定は決まっているのですが、~V以上とか~以下とか最低の条件しか規定されていないようなので、実際の使用時にはデータシートと実測での確認が必要だと思います。

出力出来るソース電流(取り出せる電流量)、シンク電流(流し込める電流量)も、パラレルポートの規格では最低限の、、なので、現実には使用されているチップ(デバイス)のデータシートで確認すると良いのでは??

また、多分使用するマザーボード、電源でも多少は変動すると思うので今回のコレが絶対とゆうわけではないと思われます。




今回、PCIパラレルポートカードとHALを使用してみましたが、LinuxCNC自体、このHALを用いて設定し運用します。
LinuxCNCのGUIを受け持つAXISもPyVCPにて書かれているようですし、LinuxCNC自体HALコンポーネント群の一つ、LinuxCNCだったりします。

HALファイルには、入出力や演算、その他各種コンポーネントを呼び出し、コンポーネントに設定数値を入力したり、配線を繋ぐ記述をします。
なので、3軸CNCマシンとして使用するだけでなく、他の駆動系式のマシンも構築できるし、別のユーザーインターフェースを構築したりも出来ると思います。

何かの加工用途用や、搬送機、その他機械の制御専用のマシンに仕立て上げることまでできるのでは?と。。




どちらかとゆうと、「オープンソースだから使う」、ではなく、「これをこうしてこうしたいから使う」とゆう感じです。。
機能が豊富過ぎて把握しきれてません、が^^;



パラレルポートの入力数を増やした設定の2ポートinのHalファイルの例も。。
http://www.vdwalle.com/Norte/Second%20Parport.htm


12/30追記
色々と触ってみると、やはり、ボードにより、出力電圧に差が有り。

また、ハードウエアの仕様か、LinuxCNCの仕様かは解らないが2~9番pinの出力に比べ他出力pinの立ち上がりが遅い。

の、で、モーターのStep/Dir信号は2~9番ピンに割り当てるのが宜しいのではないかと思われます。
また、他出力信号で、速さ、を求めるものはこのpinに。。




バッファICの違いによる信号の立ち上がり方を観察してて、1番pinでテストしてたorz..




12/31追記。

PCI-EパラレルのAREAのSD-PE9900-1PLも他PCにてパラレルポートテストをしてみました。
特に通常のパラレルポートの設定となんら変わりなくポートアドレスを取得、入力で問題なく作動。

PCI接続な物は2~9番pinの立ち上がりが遅かったのですが、MCS9900CVを使ったPCI-Eのものは出力pinの信号の立ち上がりは2~9番pinと同じく瞬時に立ち上がります。

ただ、PCI接続なパラレルポートとマザーボード上のパラレルポートのと同条件での測定ではないので、今度キッチリ揃えて試してみたいと思います。

ピン開放で、オシロのプロープを繋いだ状態での電圧は3.6~4V位でした。


MCS9901CVを使用した1P-LPPCIE2も、ほぼ同じ作動をするのではないかと思います。

同条件で作動させてみた。D2700MUDにはPCI-Eがない(MiniPCI-E)のでマザーボードはちょっと古いGigabyteのGA-EP45-UD3R。

問題なく作動。
また、GA-EP45-UD3Rのパラレルポートも同条件にて測ってみたところ、2〜9番ピン以外の出力の立ち上がりが遅いわけでもなく、、、、。D2700MUD固有のもの、なのかしら???

マザーボードの具合で、PCIカードも???


う〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜ん。

パラレルポートといえども、いろいろあるので測ってみないと解らない。。

追記。

(古い)ノートPCなどのパラレルポートなど、オープンドレインとなっているものもあるようですし、また、ICのデータシートを見てみると3.3V駆動な、、、。。

もしかしたら、きちんとデータシートを読んで対処しないといけないのかもしれませぬ。特に増設したものは。。




















スポンサーサイト

テーマ : 自作・改造
ジャンル : コンピュータ

コメントの投稿

非公開コメント

ライセンス
アクセスカウンター
プロフィール

あきらひとし。

Author:あきらひとし。
木工用CNCルーターフレームと、ステッピングモータードライバを作ってみました。
たぶん記事は一般的な人には殆ど必要のない事ばかりなの、かも。

モーターは回るだけでも楽しい。制御(速度、トルク、位置)できるともっと楽しい!

メールフォーム

名前:
メール:
件名:
本文:

リンク
最新記事
カテゴリ
スポンサードリンク
スポンサードリンク 
スポンサードリンク
オンラインカウンター
現在の閲覧者数:
検索フォーム
RSSリンクの表示
最新トラックバック
最新コメント
月別アーカイブ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。