Hobby Lab 趣味のモノ作り実験のサイトです。
部品 センサー他 ADS1115 ハードウェア
1.概要
2.簡単に使う
3.クイックガイド(データシート)
4.I2Cスレーブアドレス
5.レジスタ
 (1)ポインタレジスタ
 (2)変換レジスタ
 (3)設定レジスタ
 (4)閾値レジスタ
6.注意事項 故障拡大!

I2C 関係
プロトコル
 I2C について
スレーブ関係資料
 ADS1115 16bit4CH A/D
 INA226 直流電圧電流計
 BME280 気圧,湿度,気温計
 BH1750 照度計
 DS3231 時計
 SSD1306 0.96"OLED
マスター関係プログラム
 I2C RaspberryPi_設定
ADS1115
 RaspberryPi_コマンド接続
 RaspberryPi_Python
 Arduino
 CH23V203 MounRiverStudioⅡ
INA226
 Arduino
 RaspberryPi_Python
BNE280
 Arduino
 RaspberryPi_Python
BH1750
 Arduino
 RaspberryPi_Python
DS3231
 Arduino
 RaspberryPi_Python
SSD1306
 Arduino
 RaspberryPi_Python

Pr:Sensor_AD_時計等
PrS:電圧、電流
ADS1115 16bit4CH I2C A/D
 Hardware
 RaspberryPi_コマンド接続
 RaspberryPi_Python
 Arduino
 CH23V203 MounRiverStudioⅡ
INA226 I2C 直流電圧電流
 Hardware
 Arduino
 RaspberryPi_Python
WCS 電流ホール素子
 Hardware
PrS:温度、気圧、湿度、照度
BNE280 I2C 気圧,湿度,気温
 Hardware
 Arduino
 RaspberryPi_Python
BH1750 I2C 照度
 Hardware
 Arduino
 RaspberryPi_Python
DS18B20 1-Wire 温度計
 Hardware
 Arduino
 RaspberryPi_Python
PrS:時間、日時
DS3231 I2C 時計
 Hardware
 Arduino
 RaspberryPi_Python
PrS:表示器
MAR3953 320X480 3.95"
 概要と線や点を描く
 フォントを描く
SSD1306 I2C 0.96"OLED
 Hardware
 Arduino
 RaspberryPi_Python
Pr:Wire 電線関係
Pr:Resistance 抵抗
Pr:Capacitor コンデンサ
Pr:Coil コイル
Pr:PassiveElmt 受動素子
Pr:Diode ダイオード関係
Pr:OPAMP オペアンプ関係
PrO:送受信機  Si4735
PrO:オペアンプ  LM324
 LM358
Pr:Tr トランジスタ関係
2SC1815
 リレードライバー設計
 アンプ設計
 発振器
TLP152
 TLP152テスト
TLP2361
 TLP2361テスト
TLP5754
 TLP5754テスト
Pr:Source 電源関係  ツェナーダイオード
 TL431
 LM317
PrS:Downモジュール
 EGS002_IR2110S
 SKU011012
 ACDC02
 XH_M299
 LM2596
 Mini360_MP23070N
 DROK
 WH140
PrS:UPモジュール
 MT3608
PrS:充電モジュール
 TP4056
Pr:Old Processor他
Pr:Prプロセッサ関係
PrP:プロセッサ
動作比較
 STM32F動作比較
 CH32V203&STM32F 動作比較
 arduino動作比較
raspberrypi関係
 RaspberryPiハード
CH32V関係
 -CH32V開始
 -203K8T6(32Pin)開始
 -203C8T6(48P)開始
 -003J4M6(8Pin)開始
 -003F4P6(20Pin)開始
 -Moun River StudioⅡ
 プログラミング!
  203_GPIO関係
  203_TIME関係
  203_TIME Encoder
  203_I2C関係
  203_1-Wire関係
  003_DS18B20テスター
  USART(UART)関係
  DS18B20をModBus制御
 -マニュアル
 203データシート
 203取説
  MBA メモリとバス方式
  PWR 電力制御
  RCC リセット・拡張・クロック
  BKP バックアップレジスタ
  CRC 巡回冗長検査
  RTC リアルタイムクロック
  GPIO GPIOと代替機能
  DMA ダイレクトメモリアクセス制御
  ADTM 高度な制御タイマー
  GPTM 汎用タイマー
  BCTM 基本タイマー
  USART 同期非同期通信
arduino関係
 ESP12関係
 (a)ESP-8266D1mini注意
PrP:その他  RS485ドライバー
 CP2102 BRIDGE
 WCH-LinkEエミュレーター

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
Name D15 D14 D13 D12 D11 D10 D9 D8

bit 7 6 5 4 3 2 1 0
Name 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
Default 1 0 0 0 0 1 0 1
NAME OS MUX PGA MODE
2 1 0 2 1 0

BIT 7 6 5 4 3 2 1 0
Default 1 0 0 0 0 0 1 1
NAME DR COMP
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
Default 1 0 0 0 0 0 0 0

BIT 7 6 5 4 3 2 1 0
Default 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
Default 0 1 1 1 0 0 0 0

BIT 7 6 5 4 3 2 1 0
Default 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プルアップ抵抗を外した。
便利なモジュールの使用には注意が必要!
         




















更新日 2025/11/24 19:50  管理者 平林 剛Hirabayashi Takeshi