要約
このアプリケーションノートでは、MAX7300とMAX7301のGPIO (ポートエキスパンダ)の評価に役立つPCプログラム(無料でダウンロード可能)について説明します。
MAX7300及びMAX7301は、多目的の28ポート汎用入力/出力(GPIO)のプロセッサ周辺用デバイスです。その制御は、高速SPI™ (MAX7301)またはI2C (MAX7300)シリアルインタフェースを通じて行われます。このアプリケーションノートでは、MAX7301またはMAX7300のドライバをPCで制御することができるようにするユーティリティプログラムについて説明します。このユーティリティはスタンドアロンとして使用可能で、エンジニアがドライバのレジスタや機能を理解するのに役立ちます。さらに、このユーティリティを使用すれば、機器のソフトウェアが完成する前に、MAX7301またはMAX7300のレジスタを直接制御することによって、アプリケーションボードのプロトタイプを「検証」することができます。
動作条件
Windows® 95、98、98SE、ME、NT、2000、またはXPが動作するPCで、LPT1またはLPT2のいずれかにパラレルプリンタポートが設定されていること
概要
このユーティリティは、MAX7300.EXEと呼ばれるVisual Basic 5プログラムで、実行するためには、Visual Basicの標準ランタイムライブラリMSVBVM50.DLLを必要とします。このプログラムは、DriverLINX™のフリーウェアパラレルポートドライバDLPortIO.DLLを使用しており、Visual Basicでは標準で利用できないWin32 DLLハードウェアI/O機能を実現しています。Windows NT及び2000のユーザは、DLPortIO.SYSカーネルモードドライバも必要とします。これらのドライバはどちらも、Scientific Software Tools, Inc. (www.driverlinx.com)が版権を所有します。DriverLINXは、Scientific Software Tools, Inc.の登録商標です。
インストール方法
Windows 95、98、98SE、またはMEプラットフォームにインストールするには、まずMAX7300-01.EXEファイル (812kB)をダウンロードします。これは、WinZIP自己解凍形式のアーカイブで、ReadMe.txt、ReadMeSST.txt、MAX7301.EXE、DLPortIO.DLL、及びMSVBVM50.DLLが含まれています。デフォルトのダウンロードディレクトリは、C:\MAX7300です。ライブラリがすでにコンピュータに登録されている場合には、MSVBVM50.DLLを削除してもかまいません。
Windows NT、2000、またはXPプラットフォームにインストールするには、まずMAX7300-NT.EXEファイル (2.3MB)をダウンロードします。これは、WinZIP自己解凍形式のアーカイブで、ReadMe.txt、ReadMeSST.txt、MAX7300.EXE、PORT95NT.EXE、及びMSVBVM50.DLLが含まれています。デフォルトのダウンロードディレクトリは、C:\MAX7300です。PORT95NT.EXEは、DriverLINXドライバ用のインストールプログラムで、DLPortIO.DLLライブラリとDLPortIO.SYSドライバをインストールして登録します。インストールが完了すればPORT95NT.EXEを削除してもかまいません。Windows 95、98、98SE、及びMEユーザも、このインストール手順を使用することができます。
MAX7300またはMAX7301をパラレルポートに接続する方法
このユーティリティは、8つのパラレルポートプリンタ出力ラインのうちの3つを使用してSPIシリアルインタフェースの動作を、また2つの出力ラインを使用してI²Cシリアルインタフェースの動作をシミュレーションします。パラレルポート制御入力ラインを使用して、SPIデータ、I²Cデータ、及び割り込みステータスを読み込みます。複数のMAX7301 (デイジーチェーン方式で最高16個)、及び/または複数のMAX7300 (異なるI²Cアドレスに設定して最高で16個)は、同時に動作することが可能です。ソフトウェアからLPT1またはLPT2のいずれかのポートを選択することができます。ポートは標準、ECP、またはEPPのタイプから選択することができます。ポートの接続図を図1に示します。
図1. パラレルポートへのMAX7300及びMAX7301の接続
プログラムは起動時に3つのウィンドウを立ち上げます。主制御、I/O制御、及びポート制御の各ウィンドウです。起動時のレジスタ設定値は、MAX7300とMAX7301のレジスタの電源投入時の状態が反映されます。
主制御を以下の図2に示します。[Driver type]ラジオボタンによって、MAX7301 (SPI接続を使用)またはMAX7300 (I²C接続を使用)のどちらにソフトウェアを転送するかを選択します。
図2. 起動時のプログラムの表示
SPIモードでは、ソフトウェアは最高16個のMAX7301ドライバを制御します。ドライバはカスケード接続とすることが想定されています(つまり、1つめのMAX7301のDOUTピンは2つめのMAX7301のDINピンに接続され、2つめのMAX7301のDOUTピンは3つめのMAX7301のDINピンに接続され、以降も同様に続きます)。MAX7301デバイスの総数は、[Number of Drivers]スライダで設定します。これを2以上に設定した場合、[Enable global driver write]と[Enable auto-increment]のチェックボックスが使用可能になります。[Enable global driver write]がオフの場合、[Current Driver]スライダによって選択されているMAX7301ドライバだけが書き込み対象となります(書き込みコマンドが選択されているとき)。このとき、他のドライバは無演算命令(NOP)を受け取ります。[Enable global driver write]をオンにした場合、すべてのMAX7301ドライバに同じデータが書き込まれます。[Enable auto-increment]がオンの場合、書き込みの各動作の後、現在のドライバ番号が自動的にインクリメントされます。これによって、ユーザは、一連のMAX7301ドライバに同じデータを即座に送信することができます。
パラレルポートへのSPIインタフェース接続は、プログラムの動作時に、[Port Connections and Help...]の下にある[Test Stream]機能を用いてテストすることができます。[Test Stream]機能は、無演算命令を([Number of Drivers]スライダによって設定した数の) MAX7301に連続して送信し、これによって、レジスタの内容に影響を与えることなくインタフェース接続を検証することができます。
I²Cモードでは、ソフトウェアは最高16個のMAX7300ドライバを制御します。1つめのドライバは、アドレスが1000000xに自動的に設定されるようになっており、次のデバイスに進むにつれて数が増え、最後のデバイスのアドレスは1001111xになります。たとえば、アドレスが1001111xである単一のMAX7300ドライバにアクセスするには、[Number of Drivers]スライダを16に設定してから、[Current Driver]スライダを16にすると、アドレス1001111xになります。I²Cモードでの主なフォームを図3に示します。
図3. I2Cプログラムの表示
パラレルポートへのI²Cインタフェース接続は、プログラムの動作時に、[Port Connections and Help...]の下にある[Test Stream]機能を用いてテストすることができます。[Test Stream]機能は、無演算命令を([Number of Drivers]スライダによって設定した数の)すべてのMAX7300に連続して送信し、これによって、レジスタの内容に影響を与えることなくインタフェース接続を検証することができます。
[Fast serial interface]チェックボックスでは、SPIとI²Cインタフェースの両方のタイプについてシリアルインタフェース速度を設定します。このチェックボックスをオンにすると、シリアルインタフェースはマシン依存の最高速度(最大1Mbit/秒)で動作します。一方、オフにすると、速度は最大500bit/秒に制限されます。遅い速度が役に立つのは、非常に長いケーブルを介して接続する場合です。
[Write]または[Read]ボタンを押すと、プログラムは通常、対象となるドライバ(1個または複数)のみと通信します。ただし、プログラムは、割込み出力ピン(パラレルポートのピン13に接続されているものと想定)を監視しようと試みます。これは、メインウィンドウ上で、ハイかローのステータスとして表示されます。
[Automatic Update control]チェックボックスをオンにすると、プログラムは連続して28ポートのすべての入力レジスタと割込みレジスタビットをポーリングします。読み取り速度は、[Fast serial interface]チェックボックスの設定によって決まり、1秒間に複数回(高速)、または数秒間に1回(低速)です。低速モードは非常に遅くなることに留意してください。[Reading driver x]スライダを使用すると、[Current driver]コントロールを通じてアクセス可能なドライバとは独立して、自動的にデバイスが読み取られるように設定することができます。
メインウィンドウには、プログラムをExit (終了)するための手段があります。[Exit]ボタンまたはメインウィンドウ上でEscキーを押すと、3つのウィンドウがすべて閉じられます。他の2つのウィンドウのうちの一方でEscボタンを押すと、メインウィンドウに戻ります。したがって、Escボタンを2回押すと、プログラムがすばやく閉じられることになります。閉じる前に、プログラムは、プログラムが実行されたときのディレクトリにあるMAX7300.iniと呼ばれるファイルにデバイスコンフィギュレーションの最終設定状態を保存します。Windowsのレジストリには何も書き込まれません。この設定には、3つのウィンドウの位置、及びメインウィンドウ上のインタフェース設定が含まれます。MAX7300.iniが存在しない場合には新たに作成されます。MAX7300.iniが存在する場合は上書きされます。プログラムのデフォルト設定を復元するには、あるいはMAX7300.iniが破損した場合には、単にMAX7300.iniファイルを削除してください。
図4と図5は、他の2つのウィンドウのスナップショットを示しています。
図4. I/Oコンフィギュレーションのウィンドウ
図5. ポートレジスタのウィンドウ
{{modalTitle}}
{{modalDescription}}
{{dropdownTitle}}
- {{defaultSelectedText}} {{#each projectNames}}
- {{name}} {{/each}} {{#if newProjectText}}
-
{{newProjectText}}
{{/if}}
{{newProjectTitle}}
{{projectNameErrorText}}