部品実験 元に戻る

ADS1115(注意点あり) 2024/11/01

本文目次

本文以外目次
1.概要
2.簡単に使う
3.クイックガイド(データシート)
4.I2Cスレーブアドレス
5.レジスタ
 (1)ポインタレジスタ
 (2)変換レジスタ
 (3)設定レジスタ
 (4)閾値レジスタ
 (Lo_thresh 0x02 and Hi_thresh 0x03 Registers)
6.注意事項 他の機器故障拡大!
1.ADS1115 Arduinoプログラム
2.ADS1115 Pythonプログラム(RaspberrPi)

本   文

1.概要
1) 特長
a.超小型X2QFNパッケージ:
  2mm × 1.5mm × 0.4mm
b.広い電源電圧範囲: 2.0V~5.5V
c.低消費電流: 150μA
  (連続変換モード時)
d.データ・レートを設定可能:
  8 SPS~860 SPS
e.収束時間は1サイクル
f.低ドリフト基準電圧を内蔵
g.オシレータを内蔵
h.I2Cインターフェイス: 4つのピンでアドレスを選択可能
i.4つのシングルエンド入力または2つの差動入力
j.プログラマブル・コンパレータ (ADS1114およびADS1115)
k.動作温度範囲:
  -40℃~+125℃

(2)アプリケーション
a.携帯機器
b.バッテリの電圧と電流の監視
c.温度測定システム
d.コンシューマ・エレクトロニクス
e.ファクトリ・オートメーションとプロセス制御

(3)定格補足
a.アナログ最大入力電圧 VDD+03V
b.コモンモード入力インピーダンス
FS=±6.144(V) 10(MΩ)
FS=±4.096(V) ±2.048(V) 6(MΩ)
FS=±1.024(V) 3(MΩ)
FS=±0.512(V) ±0.256(V) 100(MΩ)

(4)概要
ADS1113、ADS1114、ADS1115デバイス (ADS111x)は、高精度、低消費電力、16ビット、I2C互換のA/Dコンバータ (ADC) です。超小型のリードレスX2QFN-10パッケージとVSSOP-10パッケージで供給されます。
ADS111xデバイスは低ドリフト基準電圧とオシレータを内蔵しています。
ADS1114とADS1115は、プログラマブル・ゲイン・アンプ (PGA) とデジタル・コンパレータも内蔵しています。これらの機能を有し動作電源電圧範囲が広いADS111xは、省電力と省スペースが要求される、センサを使用した測定アプリケーションに適します。
ADS111xは最大で860サンプル/秒 (SPS) までのデータ・レートで変換処理を実行できます。PGAは入力電圧範囲が±256mV~±6.144Vであり、振幅の小さな信号から大きな信号まで高精度に測定できます。
ADS1115には入力マルチプレクサ(MUX)が使用されており、2つの差動入力または4つのシングルエンド入力を測定できます。
過電圧や低電圧の検出には、ADS1114とADS1115のデジタル・コンパレータを使用してください。
ADS111xは、連続変換モードまたはシングル・ショット・モードで動作します。シングル・ショット・モード時は、1回の変換動作後にデバイスの電源が自動的にオフになるため、アイドリング中の消費電力を大幅に低減できます。

(5)ピン
PIN DEVICE DESCRIPTION
1 ADDR I 2C slave address select
2 ALERT/RDY Digital comparator output or conversion ready
3 GND Ground
4 AIN0 Differential channel 1: Positive input or single-ended channel 1 input
5 AIN1 Differential channel 1: Positive input or single-ended channel 2 input
6 AIN2 Differential channel 2: Positive input or single-ended channel 1 input
7 AIN3 Differential channel 2: Positive input or single-ended channel 2 input
8 VDD Power supply: 2.0V to 5.5V
9 SDA Serial data: Transmits and receives data
10 SCL Serial clock input: Clocks data on SDA
[目次に戻る]


2.簡単に使う
 アクセスの仕方(ADS115のA3値を読む方法)
  信号は3つ ①設定を送る ②値を要求する ③値の返信

(1)設定を送る
①読取るADS1115の※SA番号
②ポインタレジスタの選択
③コンフィグレジスタの設定
->
->
->
0x48
0x01(※設定レジスタ)
0xF3E3(注上・下位逆)
   ※SAはスレーブアドレスを言う
   ※設定レジスタには値を読取るA0~A3の選択も含む 詳細


(2)値を要求と③値の返信
 ・読取るADS1115のID番号
 ・ポインタレジスタの選択
->
->
0x48
0x00 (変換レジスタ)
返信内容
 ・返信するADS1115のID番号
 ・変換レジスタの内容
->
->
0x48
0x1F2A(注上・下位逆)

動作確認状況
[目次に戻る]


3.クイックスタートガイド(データシートの内容)
 このセクションでは、ADS1113/4/5通信の簡単な例を示します。
 より詳細な説明については、このデータシートのセクションを参照してください。
 この設計のハードウェアには、次のものが含まれます。
 1001000のI2Cアドレスで構成された1つのADS1113/4/5。
 I2Cインターフェイスを備えたマイクロコントローラー(TIはMSP430F2002を推奨)。
 抵抗器、コンデンサ、シリアルコネクタなどの離散コンポーネント。
 および2V~5V電源。図は、基本的なハードウェア構成を示しています。

ADS113/4/5は、I2Cインターフェイスを介してマスター(マイクロコントローラー)と通信します。
マスターはSCLピンにクロック信号を提供し、データはSDAピンを介して転送されます。
ADS1113/4/5は、SCLピンを決して駆動しません。
使用されているマイクロコントローラーのプログラミングとデバッグについては、デバイス固有の製品データシートを参照してください。
マスターによって送信された最初のバイトは、ADS1113/4/5アドレスに続いて、ADS1113/4/5に後続のバイトを聞くように指示する少しが必要です。
2番目のバイトはレジスタポインターです。レジスタマップについては、表9を参照してください。
マスターから送信された3番目と4番目のバイトは、2番目のバイトに示されているレジスタに書き込まれます。
それぞれ読み取りおよび書き込み操作タイミング図については、図30と図31を参照してください。
ADS1113/4/5を使用したすべての読み取りおよび書き込みトランザクションの前に開始条件が付いていて、停止条件が続く必要があります。

たとえば、ADS1113/4/5を連続変換モードに設定してコンバージョン結果を読み取るには、構成レジスタに書き込むには、次のバイトをこの順序で送信します。


設定レジスタに書き込む:
最初のバイト:0B10010000(最初の7ビットI2Cアドレスとそれに続く低い読み取り/書き込みビット)
2番目のバイト:0B00000001(config Registerのポイント)
3番目のバイト:0B10000100(書き込み対象のconfigレジスタのmsb)
4番目のバイト:0B10000011(書き込み対象のconfigレジスタのLSB)


Pointer Registerに書き込む:
最初のバイト:0B10010000(最初の7ビットI2Cアドレスとそれに続く低い読み取り/書き込みビット)
2番目のバイト:0B00000000(変換レジスタのポイント)


変換レジスタを読む:
ファーストバイト:0B10010001(最初の7ビットI2Cアドレスとその後の高い読み取り/書き込みビット)
2番目のバイト:変換レジスタのMSBを使用したADS1113/4/5応答
3番目のバイト:コンバージョンレジスタのLSBを使用したADS1113/4/5応答
[目次に戻る]


4.I2Cアドレスの選択
I2Cのアドレスは7bitで値設定はADDRと各ピンを短絡する事により4つのアドレスを設定できる。
ADDR PIN CONNECTION SLAVE ADDRESS
GND 1001000B 48h
VDD 1001001B 49h
SDA 1001010B 4Ah
SCL 1001011B 4bh
[目次に戻る]


5.レジスター
(1)ポインタレジスタ(ポインタレジスタバイトだけRead/Write)
ADS1115から特定のレジスタにアクセスするには、まずマスターがポインタレジスタに適切な値を書き込む必要があります。
ポインターレジスタに書き込まれた値によって、4つのレジスタにアクセス出来ます。
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
0 0 0 0 0 0 Register address

レジスタにはポインタレジスタで表している4つのレジスタがある。
変換レジスタ(Conversion Register)
設定レジスタ(Config Register)
Lo閾値レジスタ(Lo_thresh REGISTERS)
Hi閾値レジスタ(Hi_thresh REGISTERS)

4つのレジスタとアドレス
レジスタ bit1 bit0
変換レジスタ 0 0
設定レジスタ 0 1
低値_閾値レジスタ 1 0
高値_閾値レジスタ 1 1
[目次に戻る]

(2)変換レジスタ  (Read/Only) ポインターレジスタ値 0x00
16 ビット レジスタには、最後の変換の結果が 2 進数の 2 の補数形式で格納されます。
リセットまたは電源投入後、変換レジスタは '0' にクリアされ、最初の変換が完了するまで '0' のままになります。
通信では16ビットの上位(BIT15~8)と下位(BIT7~0)の送り順は逆になるので注意すること。
bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Name D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
[目次に戻る]

(3)設定レジスタ (Read/Write) ポインターレジスタ値 0x01
16 ビット レジスタを使用して、ADS1113/4/5 の動作モード、入力選択、データ レート、PGA 設定、およびコンパレータ モードを制御できます。
デフォルト設定レジスタ値 8583h
通信では16ビットの上位(BIT15~8)と下位(BIT7~0)の送り順は逆(デフォルト値は8385h)になるので注意すること。
BIT 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Default 1 0 0 0 0 1 0 1 1 0 0 0 0 0 1 1
NAME OS MUX PGA MODE DR COMP
2 1 0 2 1 0 2 1 0 MODE POL LAT QUE1 QUE0

 ビット[15] OS: 動作ステータス/シングルショット 変換開始
 このビットはデバイスの動作ステータスを決定します。
 このビットはパワーダウン モードの場合にのみ書き込むことができます。   
 書き込みステータスの場合:
0 影響なし 0000h
1 シングル変換を開始 (パワーダウン モードの場合) 8000h
 読み取りステータスの場合:
0 デバイスは現在変換を実行中 0000h
1 デバイスは現在変換を実行していません 8000h
[設定レジスタへ戻る]

 ビット [14~12] MUX マルチプレクサ選択 (ADS1115 のみ)
MUX[2:0]: 入力マルチプレクサ構成
これらのビットは、入力マルチプレクサを設定します。
0 0 0 AINP = AIN0 and AINN =AIN1 (default) 0000h
0 0 1 AINP = AIN0 and AINN =AIN3 1000h
0 1 0 AINP = AIN1 and AINN =AIN3 2000h
0 1 1 AINP = AIN2 and AINN =AIN3 3000h
1 0 0 AINP = AIN0 and AINN =GND 4000h
1 0 1 AINP = AIN1 and AINN =GND 5000h
1 1 0 AINP = AIN2 and AINN =GND 6000h
1 1 1 AINP = AIN3 and AINN =GND 7000h
マルチプレクサ(±を計測)は表からAIN0-AIN1 AIN0~AIN2-AIN3となる。
[設定レジスタへ戻る]

 ビット [11:9] プログラマブル ゲイン アンプ選択(ADS1114 および ADS1115 のみ)
これらのビットは、プログラマブル ゲイン アンプを設定します。
PGA FS DIFFERENTIAL INPUT IMPEDANCE※1 LSB SIZE 分解能 レジスタ値
0 0 0 ±6.144V 22MΩ 187.5uV ±32,768 0000h
0 0 1 ±4.096V 15MΩ 125uV ±32,768 0200h
0 1 0 ±2.048V (default) 4.9MΩ 62.5uV ±32,768 0400h
0 1 1 ±1.024V 2.4MΩ 31.25uV ±32,768 0600h
1 0 0 ±0.512V 710kΩ 15.625uV ±32,768 0800h
1 0 1 ±0.256V 710kΩ 7.8125uV ±32,768 0A00h
1 1 0 ±0.256V 同上 同上 同上 0C00h
1 1 1 ±0.256V 同上 同上 同上 0E00h
※1差動入力のインピーダンス
このパラメータは、ADC スケーリングのフルスケール範囲を表します。
このデバイスに VDD + 0.3V を超える電圧を印加しないでください。
アナログ入力電圧は、絶対最大定格で指定されたアナログ入力電圧制限を決して超えないでください。
4 V を超える VDD 電源電圧を使用する場合、±6.144 V のフルスケール範囲により、入力電圧を電源まで拡張できます。
ただし、この場合 (または電源電圧がフルスケール範囲より低い場合、たとえば、VDD = 3.3 V でフルスケール範囲 = ±4.096 V)、フルスケール ADC 出力コードを取得することはできません。
たとえば、VDD = 3.3 V で FSR = ±4.096 V の場合、VIN = ±3.3 V までの信号のみを測定できます。
この場合、電圧 |VIN| > 3.3 V を表すコード範囲は使用されません。
[設定レジスタへ戻る]

 ビット[8] MODE: デバイスの動作モード
シングル・ショット・モード時は、1回の変換動作後にデバイスの電源が自動的にオフになるため、アイドリング中の消費電力を大幅に低減できます。
0 連続変換モード 0000h
1 パワーダウン シングルショット モード (default) 0100h
[設定レジスタへ戻る]

  ビット [7:5] データレート
これらのビットは、データレート設定を制御します。
0 0 0 8SPS 0000h
0 0 1 16SPS 0020h
0 1 0 32SPS 0040h
0 1 1 64SPS 0060h
1 0 0 128SPS  (default) 0080h
1 0 1 250SPS 00A0h
1 1 0 475SPS 00C0h
1 1 1 860SPS 00E0h
[設定レジスタへ戻る]

 ビット[4] このビットはコンパレータの動作モードを制御します。(ADS1114 および ADS1115のみ)
コンパレータが従来のコンパレータ (COMP_MODE = '0') として実装されるか、ウィンドウ コンパレータ (COMP_MODE = '1') として実装されるかを変更します。ADS1113 では機能しません。
0 ヒステリシス付きの従来のコンパレータ (デフォルト) 0000h
1 ウィンドウ コンパレータ 0010h
[設定レジスタへ戻る]

 ビット[3] このビットは ALERT/RDY ピンの極性を制御します。(ADS1114 および ADS1115のみ)
COMP_POL: コンパレータ極性 (ADS1114 および ADS1115 のみ)
COMP_POL = '0' の場合、コンパレータ出力はアクティブ ローです。
COMP_POL='1' の場合、ALERT/RDY ピンはアクティブ ハイです。ADS1113 では機能しません。
0 アクティブ ロー (デフォルト) 0000h
1 アクティブ ハイ 0008h
[設定レジスタへ戻る]

 ビット[2]このビットは、ALERT/RDY ピンがアサートされたらラッチするか、変換が上限しきい値と下限しきい値のマージン内になったらクリアするかを制御します。

COMP_LAT: ラッチ コンパレータ (ADS1114 および ADS1115 のみ)
COMP_LAT = '0' の場合、ALERT/RDY ピンはアサートされてもラッチしません。
COMP_LAT = '1' の場合、アサートされた ALERT/RDY ピンは、変換データがマスターによって読み取られるか、適切な SMBus アラート応答がマスターによって送信され、デバイスがそのアドレスで応答し、それが現在 ALERT/RDY バス ラインをアサートしている最下位アドレスになるまで、ラッチされたままになります。このビットは ADS1113 では機能しません。
0 非ラッチ コンパレータ (デフォルト) 0000h
1 ラッチ コンパレータ 0004h
[設定レジスタへ戻る]

 ビット [1:0]COMP_QUE: コンパレータ キューと無効化 (ADS1114 および ADS1115 のみ)
これらのビットは 2 つの機能を実行します。'11' に設定すると、コンパレータ機能が無効になり、ALERT/RDY ピンがハイ状態になります。他の値に設定すると、ALERT/RDY ピンをアサートする前に必要な上限または下限しきい値を超える連続変換の数を制御します。ADS1113 では機能しません。
0 0 1 回の変換後にアサート 0000h
0 1 2 回の変換後にアサート 0001h
1 0 4 回の変換後にアサート 0002h
1 1 コンパレータを無効にする (デフォルト) 0003h
[設定レジスタへ戻る]
[目次に戻る]

(4)閾値レジスタ (Read/Write)   ポインターレジスタ値 0x02,0x03
Lo_thresh および Hi_thresh レジスタ
コンパレータで使用される上限と下限のしきい値は、2 つの 16 ビット レジスタに格納されます。
これらのレジスタは、出力レジスタが値を表示するのと同じ形式で値を格納します。 つまり、2 の補数形式で格納されます。
これはデジタル コンパレータとして実装されるため、PGA 設定が変更されるたびに値を再調整するように特別な注意を払う必要があります。

Hi_thresh レジスタの MSB を「1」に、Lo_thresh レジスタの MSB を「0」に設定することにより、コンパレータ出力ピンの 2 次変換準備機能を実現できます。
ただし、それ以外の場合はすべて、Hi_thresh レジスタは Lo_thresh レジスタよりも大きくする必要があります。
しきい値レジスタのフォーマットを表 10 に示します。
RDY モードに設定すると、ALERT/RDY ピンは、単発モードでは OS ビットを出力し、連続変換モードではパルスを出力します。

Lo_thresh Registers ポインタレジスタ 0x02
BIT 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Default 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Lo_thresh default = 8000h

Hi_thresh Registers ポインタレジスタ 0x03
BIT 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Default 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
Hi_thresh default = 7FFFh
[目次に戻る]


6.注意事項
ADS1115のモジュールが販売されている。
このモジュールはADS1115本体より安価に販売されている。
このため私も購入したのですが、このアナログ値が3.3Vより高いため、このモジュールのVDDを5Vで使用した。
他のI2Cモジュールは3.3Vで使用した。
配線をチェックし
電源を入れたところ3.3VI2C系統のモジュールが動作しない!
モジュールの1つSSD1306(LCDモジュール)が故障していた。(なぜ!)
I2Cの信号線SCL、SDAは外部抵抗によりプルアップしておりこの電圧はI2Cモジュール群の最低電圧で全てが動作出来る電圧3.3Vだった。
しかしI2Cモジュールを見ると基板にプルアップ抵抗が有る!(今まで気が付いていない!)
の回路から3.3V回路へADS1115のVDD5Vが流れ込み3.3V系電源が5V近い電圧まで上昇しSSD1306が破損したのだ!!残念!

対応は5V系I2Cで使用しているADS1115のSCL,SDAプルアップ抵抗を外した。
便利なモジュールの使用には注意が必要!
         
[目次に戻る]