対象製品Armadillo-460カテゴリ拡張バスデジタル出力デジタル入力PC/104GPIOHowtoは、Armadilloシリーズを有効に活用するための参考資料です。使用ソフトウェアのバージョンなど諸条件の差異によって、記載内容と実際の動作が異なる場合があります。すべての機能検証や長期の動作試験を行ったものではありませんので、必ずご使用目的に適合した検証・試験を行ってください。Armadillo-460のPC/104バスにデジタル入出力ボードHT2030(梅沢無線電機製)を接続して使用する方法を紹介します。HT2030は、入力16チャンネル、出力8チャンネルをもった、PC/104接続のデジタル入出力(DIO)ボードです。各入出力チャンネルは、光アイソレートされています。HT2030の詳細な仕様等は、梅沢無線電機ホームページでご確認ください。Armadillo-460にPC/104ボードを接続して使用する場合、そのボード専用のデバイスドライバを作成するというのが、本来の方法です。Linuxカーネル用のデバイスドライバを作成するのはなかなかハードルが高い作業です。そこで、本Howtoではサンプルプログラムをユーザーランドで動作するアプリケーションプログラムとして実装します。このように、Armadillo-460では簡単なPC/104ボードであれば、デバイスドライバを作成せずとも、制御することができるようになっています。以下はサンプルアプリケーションの主な仕様です。割り込みは未使用I/Oベースアドレスは0x100固定(出荷デフォルト)本Howtoでのおおまかな手順は以下のようになります。動作確認に使用したソフトウェアは以下の通りです。ht2030.tar.gzArmadillo-460に関連するマニュアルの最新版は、製品マニュアルからダウンロードすることができます。HT2030のジャンパ設定を確認するHT2030ではPC/104のI/Oアドレス空間のどこを使用するか、ジャンパで設定できるようになっています。JP4)が以下のように設定されていることを確認してください。HT2030の各ジャンパにシルク印字されている「●」側にジャンパソケットを取り付けた場合に設定値が0になります。0その他の設定をする場合は、サンプルアプリケーションのソースファイルの以下の行に定義されているI/Oベースアドレスを編集する必要があります。(0x100)また、HT2030ではPB7の入力で割り込みを発生させることができますが、今回のサンプルアプリケーションでは使用しません。JP16が全てオープンに設定されていることを確認してください。Armadillo-460にスペーサを取り付けるHT2030を接続する前に、Armadillo-460の四隅に付属のスペーサ(15mm)を取り付けてください。PC/104用のピンは比較的長いため、スペーサを取り付けていないとボードの重みでピンが曲がってしまうことがあります。HT2030をArmadillo-460に接続する最後に、Armadillo-460に電源が入っていないことを確認してから、HT2030をArmadillo-460に接続してください。以上で事前準備は完了です。wgetコマンドで開発PC上にダウンロードし、tarコマンドで展開してください。ht2030.hht2030.cがソースコード、ht2030.hがヘッダファイルです。ht2030.cの中身を見てみると、以下に示すように単純な処理しか行っていません。これだけで、PC/104ボードのレジスタを読み書きすることができます。I/O空間(8bitアクセス用)をmemmap()memmap()した空間のうち、HT2030のI/Oベースアドレス分移動した空間へアクセスサンプルアプリケーションをビルドするには、makeコマンドを実行してください。ファイル"ht2030"が、ビルドによって生成されたサンプルアプリケーションの実行可能ファイルです。ftpでファイルを送受信するを参照し、サンプルアプリケーションの実行可能ファイルを開発用PCからArmadillo-460に転送してください。転送が完了したら、Armadilloの端末上で以下のように実行権限を付与し、パスの通ったディレクトリへ実行可能ファイルを移動してください。ビルド済みのatmark-distがある場合は、以下の手順で本サンプルアプリケーションを含んだユーザランドイメージファイルを作ることもできます。ソフトウェアマニュアル」を参照してください。サンプルアプリケーションの実行サンプルアプリケーションの書式は以下に示す通りです。[出力チャンネルに設定する値]引数無しで実行すると、入力ポート(PA及びPB)の全てのチャンネルの値を表示します。各ポートは8個のチャンネルを有しているため、合計で16チャンネル分の状態が表示されます。引数を指定して実行した場合は、出力ポート(PC)に、指定した値を書き込みます。PCも8個のチャンネルを有しており、1チャンネルあたり1ビットが割り当てられています。そのため、設定可能な値は0(0x00)~255(0xFF)です。HT2030のレジスタ入出力の論理レベルは入力ポートと出力ポートで異なります。本サンプルアプリケーションでは、各入出力チャンネルの値として、レジスタの値をそのまま使用しています。0コマンドの実行例は次のようになります。入力チャンネルの値を表示します。PA0とPB4に対応するフォトカプラがオンの場合は以下のように表示されます。11111110出力チャンネルに値を設定します。PC3に対応するフォトカプラのみをオンにする場合は以下のようにコマンドを実行します。本サイトに記載の商品名または会社名は、各社・各団体の商標または登録商標です。TM、®マークは付記していない場合があります。