FPGA R シリーズ RIO でアナログ入力の読み取りが想定される値の10分の1になります。なぜでしょうか。



使用ソフトウェア:
使用ソフトウェア・バージョン: 1.0
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア: N/A
ハードウェア: Reconfigurable I/O (RIO)>>R Series

問題: NI PCI-7831R (RシリーズマルチファンクションRIO)を使用してます。アナログ入力を取る際、読み取り値が想定される値の10分の1になります。デバイスが故障しているのでしょうか。

解決策:
これはデバイスの故障ではなく、データが正しくスケールされていない可能性が高いです。そのため結果を10倍にする必要があります。

NI 783xR/784xR/785xR のアナログ入力チャンネルは逐次比較型のA/Dコンバータを使用し、データを2の補数で返します。これらのA/Dコンバータは16ビットの分解能をもち、65,536 (2^16)の返り値があります。

入力レンジは +/- 10 V に固定されています。読み取り値はスケールされていて、最も大きい整数(7FFF (hex))が +10 V を表現し、0000 (hex)が 0 V を表現し、最も大きい負数(8000 (hex))が -10 V を表しています。

アナログ入力電圧 コンバータ出力値 (十六進数) (2の補数) 返り値 (十進数) = (コンバータ出力値) / (32,768)
+ 9.999695 Volts 7FFF + 0.9999695
0.000000 Volts 0000 0.0000000
- 10.000000 Volts 8000 - 1.0000000


*コンバータ出力値は2の補数になります。

その為、返り値から集録した電圧値を割り出す事ができます。

集録した電圧値 = (返り値)X 10

下記はオンポードプロセスの上位図になります。



入力電圧:入力レンジは +/- 10 V に固定されています。

A/Dコンバータ:オンボードのA/Dコンバータは逐次比較型で0000 (hex)から8000 (hex)の値を返します。

コンバータ:コンバータはA/Dコンバータの16ビット出力を取り込み、2の補数に変換します。コンバータは32,767の正数、32,768の負数、そして0を出力します。

返り値:返り値はコンバータ出力値に分解能をかけたものです。

返り値 = コンバータ出力値 * (1 / 32,768)

返り値のレンジは + 0.9999695 から - 1.0000000です。

最終値 : 返り値に入力レンジ(20V)の半分(10V)を掛ける必要があります。FPGA を効率的に使用するためには、ホストVIでスケールを行うが適切です。


関連リンク: KnowledgeBase 4HUDE84H: Why am I Getting Large Binary Values From Analog FPGA Reading?
Developer Zone: Converting data for use with Analog I/O on R Series Intelligent DAQ


添付:





報告日時: 11/20/2011
最終更新日: 02/01/2015
ドキュメントID: 5RJFUX0