最終更新日:2016年9月20日
I2CデバイスをLabVIEWからアクセスしたいと思うことは多々あります。一般にはNI-845xというデバイスを使用してアクセスする方が多いと思いますが、如何せん高価です。解析に使用するならまだしも。。。。
そこで、安価なデバイスとしてサンハヤト社のMM-CP2112を使用してI2Cデバイスにアクセスできるようにしました。参照LV-CP2112
今回、I2CデバイスのターゲットとしてTI社のADS1115を採用しました。
https://www.ti.com/product/ADS1115
日本語資料も提供されています。助かります。
https://www.tij.co.jp/jp/lit/ds/symlink/ads1113.pdfchipのまま使用するのは大変です。上記のようにブレッドボードに差し込んで使用する事として、HiLetgo社の提供するモジュールを購入し動作確認をしています。
https://www.amazon.co.jp/HiLetgo-ADS1115-4チャンネル-Arduino-Rpiと互換/
このチップですが、PGA搭載でリッチです。それなりに設定しないとうまく利用できないです。入力信号に負の値が入る場合は必ず差動入力設定で使用する必要があります。
VITreeは以下のようになっています。
オブジェクト自体はベクター殿のストレージをお借りしています。
URL 出来る事は、
- LabVIEW2015開発環境(32bit)環境でADS1115を利用したアプリケーション開発が出来ます。
- LabVIEW2015開発環境で作成しましたが、コンバートだけなら最新の評価版でLV8.0までプロジェクト毎ダウンコンバート出来るかと思います
- 16bit4chSE/2chDIアナログデータの取得が出来ます。レンジ設定は6段階2/3x、1x、2x、4x、8x、16x x10とかでないと使いづらいですね。
2/3x gain +/- 6.144V 1 bit = 0.1875 mV
1x gain +/- 4.096V 1 bit = 0.125 mV
2x gain +/- 2.048V 1 bit = 0.0625 mV
4x gain +/- 1.024V 1 bit = 0.03125 mV
8x gain +/- 0.512V 1 bit = 0.015625 mV
16x gain +/- 0.256V 1 bit = 0.0078125 mV- サンプリングレートは8段階 8sps、16sps,32sps,64sps,128sps,250sps,475sps,860sps
- レジスタは4種類(設定レジスタ、変換レジスタ、Lo_threshレジスタ、Hi_threshレジスタ)
設定レジスタ:動作モードの変更・状態確認
変換レジスタ:最後の変換結果を格納
Lo_threshレジスタ:コンパレータ機能で使用します。
Hi_threshレジスタ:コンパレータ機能で使用します。- レジスタマップは以下のように公開されています。
ポインタレジスタ(書込専用)
bit7(msb) bit6 bit5 bit4 bit3 bit2 bit1 bit0(lsb) レジスタ 0 0 0 0 0 0 0 0 変換レジスタ 0 0 0 0 0 0 0 1 設定レジスタ 0 0 0 0 0 0 1 0 Lo_threshレジスタ 0 0 0 0 0 0 1 1 Hi_threshレジスタ
変換レジスタ(読込専用)
bit 15(msb) 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0(lsb) 名前 D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
設定レジスタ(書込/読込)
ビット 15 14 13 12 11 10 9 8 名前 OS MUX2 MUX1 MUX0 PGA2 PGA1 PGA0 MODE ビット 7 6 5 4 3 2 1 0 名前 DR2 DR1 DR0 COMP_MODE COMP_POL COMP_LAT COMP_QUE1 COMP_QUE0
Lo_threshレジスタ(書込/読込)
ビット 15 14 13 12 11 10 9 8 名前 Lo_thresh15
Lo_thresh14
Lo_thresh13
Lo_thresh12
Lo_thresh11
Lo_thresh10
Lo_thresh9
Lo_thresh8 ビット 7 6 5 4 3 2 1 0 名前 Lo_thresh7
Lo_thresh6
Lo_thresh5
Lo_thresh4
Lo_thresh3
Lo_thresh2
Lo_thresh1
Lo_thresh0
Hi_threshレジスタ(書込/読込)
ビット 15 14 13 12 11 10 9 8 名前 Hi_thresh15
Hi_thresh14
Hi_thresh13
Hi_thresh12
Hi_thresh11
Hi_thresh10
Hi_thresh9
Hi_thresh8 ビット 7 6 5 4 3 2 1 0 名前 Hi_thresh7
Hi_thresh6
Hi_thresh5
Hi_thresh4
Hi_thresh3
Hi_thresh2
Hi_thresh1
Hi_thresh0
実際にExampleを実行した例を挙げておきます。
|
レジスタマップを一覧できるExampleを用意しています。レジスタは4つでいずれも16bitです。 レジスタアドレスは8bitで、変換レジスタ0x00、設定レジスタ0x01、LoThreshレジスタ0x02、HiThreshレジスタ0x03 です。 |
![]() |
単一ch指定の計測は比較的安定して取得できます。 CH2(SE)に矩形波、CH3(SE)に正弦波を入力し、途中で切り替えて表示した例です。 連続サンプリングですが、なぜかループタイムが4msec掛かります。歯抜けになっているデータと思われます。 なぜ4msec以下にならないのか調査が必要です。 分解能は16bit有りますね。PGAもちゃんと切り替わることを確認しています。 |
![]() |
CH2(SE)に矩形波、CH3(SE)に正弦波を入力しマルチプレクサ取り込みを試みました。 ループタイムに16msec掛かっています。このためもあってか、CHがずれてしまいます。 ループタイムに時間が掛かる原因が明確ではありません。BaseClockを100kから400kに上げても対策にはなりません。 マルチプレクサ取り込みの例が見つからず、TIの意図を読み取れていません。 |
免責事項
本ソフトウエアは、あなたに対して何も保証しません。本ソフトウエアの関係者(他の利用者も含む)は、あなたに対して一切責任を負いません。
あなたが、本ソフトウエアを利用(コンパイル後の再利用など全てを含む)する場合は、自己責任で行う必要があります。本ソフトウエアの著作権はToolsBoxに帰属します。
本ソフトウエアをご利用の結果生じた損害について、ToolsBoxは一切責任を負いません。
ToolsBoxはコンテンツとして提供する全ての文章、画像等について、内容の合法性・正確性・安全性等、において最善の注意をし、作成していますが、保証するものではありません。
ToolsBoxはリンクをしている外部サイトについては、何ら保証しません。
ToolsBoxは事前の予告無く、本ソフトウエアの開発・提供を中止する可能性があります。
商標・登録商標
Microsoft、Windows、WindowsNTは米国Microsoft Corporationの米国およびその他の国における登録商標です。
Windows Vista、Windows XPは、米国Microsoft Corporation.の商品名称です。
LabVIEW、National Instruments、NI、ni.comはNational Instrumentsの登録商標です。
I2Cは、NXP Semiconductors社の登録商標です。
その他の企業名ならびに製品名は、それぞれの会社の商標もしくは登録商標です。
すべての商標および登録商標は、それぞれの所有者に帰属します。