09-17-2020 12:07 AM
09-17-2020 06:59 PM
amatwm さん、はじめまして
どこまで試されたかわかりませんが、まずは下記のドライバをインストールいただき、中にあるサンプルから始めてみてはいかがでしょうか。
https://www.ni.com/ja-jp/support/downloads/drivers/download.ni-845x-driver-software.html#346270
09-17-2020 10:23 PM
こんにちは。
I2CやSPIは基本的にバイト単位で通信します
以下かなり強引な表現になりますが、通信の基本的な流れはこんな感じ。
〇USB-845xデバイスのリファレンスを開きます。必要に応じてプロパティをいじります
〇NI-845x I2C Write Read.viを使ってデバイスと通信します。
ここからがちょっと普通の機器と通信するのが違うところです
たとえば相手デバイスにx7Aコマンドを送るとデータがxAAxFFxAAxFFのように4バイト帰ってくるものとします。
普通だとwrite.viでx7A書き込んでread.viでxAAxFFxAAxFFを読むのですが、I2CやSPIは送ってるデータに返事が乗っかってくるイメージ。
なので、送信はx7Ax00x00x00x00と送るとx??xAAxFFxAAxFFみたいに帰ってきます。
(応答の最初のx??は不定値だったりが多い。データはx00x00x00x00に乗っかってくる)
これを踏まえてもっと具体的にいうと、Writeにはx7Aから始まるU8形式の5バイト分の配列をつなぐとReadに書き込んだ量と同じサイズの配列が返ってきます。
〇終わったらリファレンスを閉じます
すべてがこのような手順ではありませんが、ほとんどはこんな感じ。
I2CやSPIは計測機器の制御とは違ってかなり低レベルのやり取りをしますのでハードウェアの知識が不可欠です。
相手デバイスのマニュアルを理解する方が重要かも。プログラムの方は至極単純です。