まず、デバイスのユーザマニュアルを確認して、デバイスがプッシュプル(アクティブ駆動またはソース、ソーシングとも呼ばれる)、およびオープンドレイン(オープンコレクタまたはシンク、シンキングとも呼ばれる)に対応しているかどうかを確認する必要があります。ユーザマニュアルには、デバイスのデフォルト状態も記載されています。
メモ: 一部のNI-DAQデバイスをシンクまたはソースとして設定することはできません。シンク型/ソース型デジタル出力としてNI 940xモジュールを構成するで説明しているように、双方向シンク/ソーシングデジタルデバイスとしてリストされているほとんどのデバイスは、シンクまたはソースデバイスとして機能する特定の方法で配線する必要があります。デジタルラインの正しい配線の詳細については、デバイスのユーザーマニュアルを参照してください。
次に、オープンドレインについて簡潔に説明します。オープンドレイン(MOSFET)またはオープンコレクタ(バイポーラトランジスタ、BJT)は、プルダウンまたはプルアップ抵抗を1つ使用してデジタルラインのハイとローを切り替えるための回路です。回路には、基本的にグランドへのパスまたは5 Vへのパスを持つ抵抗があります。そのため、トランジスタがオフのときに、ラインが高電位または低電位に浮動します。
プルアップ抵抗のあるBJTを使用するケースを検討してみます。ハイの間、BJTのベースは0 Vです。これは、ラインを5 Vにプルアップすることによってハイに引き上げられるBJTで開回路になります。高インピーダンス負荷で全負荷にわたって5 Vに見えるはずです(プルアップは4.7 kΩ)。ローの間、BJTのベースは5Vが生成されます。これは、回路をグランドに短絡し、プルアップ回路から直接グランドに流れる電流となります。よって、負荷にわたって0 Vです。
プッシュプルは、アクティブ駆動も併用するため大きく異なる動作をします。この回路は、ハイとロー論理間を決定するために2つのトランジスタを使用します。この回路では、基本的に1つのNPNでもう1つがPNPである2つのBJTがあります。回路図は以下のとおりです。
図2の回路図に示すとおり、5 Vとグランド間の出力を駆動するのに使用されます。Vinがローのとき、下側のBJTはONで上側のBJTがOFFとなり、負荷にわたって0 Vとなります。Vinがハイのとき、上側のBJTはONで下側のBJTがOFFとなり、負荷にわたって5Vとなります。
メモ: NI-USB 6008は、常にオープンドレインの出力駆動タイプであり、プッシュプルに変更することはできません。
NI-DAQmxを使用してプッシュプルタイプに設定する
LabVIEWでチャンネルプロパティノードを使用してデバイスのさまざまなチャンネルを構成することができます。ブロックダイアグラムにDAQmxチャンネルプロパティノードを配置した後にクリックして、下図に示すようにデジタル出力>>出力駆動タイプを選択します。
右クリックしてすべてを書き込みに変更を選択し、DO.OutputDriveTypeプロパティの入力ノードを右クリックして作成 » 定数を選択します。オープンコレクタの項目はオープンドレインに相当し、アクティブ駆動はプッシュプルに相当します。
LabVIEWで、このDO.OutputDriveType チャンネルプロパティは、異なる出力駆動タイプをサポートするデバイスに参照されない限り表示されません。また、DAQmxチャンネルプロパティを右クリックしてフィルタを選択...からすべての属性を表示を選択すると、必須チャンネルリファレンスが提供されていない場合でもプロパティを見ることができます。
この機能は、NI-DAQmxドライバでプログラミングできるLabWindows CVI、Microsoft Visual Studio、および他の言語でも同様に動作します。必要な関数を使用するには、DAQmx APIヘルプで「Output Drive Type」と検索してください。
NI-DAQmx Baseを使用してプッシュプルに設定する
NI-DAQmx Baseを使用している場合は、NI-DAQmx Base Configuration Utilityでこのプロパティを設定することが可能です。NI-DAQmx Baseでは、出力起動タイプをプログラム的に設定する方法はありません。Configuration Utilityは、NI-DAQmx Baseフォルダ内にあります(MacではHard Drive>>Applications>>National Instruments>>NI-DAQmx Baseにあり、Linuxでは/usr/local/natinst/nidaqmxbase/binにあります)。出力駆動タイプを変更する手順は以下のとおりです。
- Create New Taskを選択します。
- 収集タスクタイプとしてDigital I/Oを選択して、タスクに名前を付けます。
- タスクを作成した後にVoltageタブを選択します。
- Voltageタブには、DIO Voltage Levelオプションがあります。オープンドレインにするには、0-5Vオプションを使用します。プッシュプルにするには、0-3.3Vオプションを使用します。
Additional Information
この設定を変更すると、手動で再度設定する必要はありません。これは、Power-On Statesパラメータに関連しています。プログラマブルパワーオンステートがサポートされているかどうかは、お使いのデバイスのマニュアルを参照してください。