第48回 温度センサ(ADT7410) 〜動作設定〜

今回は温度センサ(ADT7410)の動作設定方法について説明します。

動作設定概要

ADT7410の動作設定を行うには、ADT7410内部のメモリのアドレス0x03に1バイトのデータを書き込むことにより行います。

レジスタ0x03に1バイトデータを書き込むには、以下のようなI2C通信手順で通信を行います。

Pic practice 48 i2c configuration

なお、スレーブアドレスは0x48、書き込み(=0)ですので、最初に送る「スレーブアドレス+読み書き指定」のデータは0x90になります。つまり、ADT7410の動作設定を行うには、0x90、0x03と動作設定データ(1バイト)の合計3バイトを送信することになります。

以下に動作設定データの1バイトの詳細を説明します。

 

動作設定レジスタ詳細

以下は動作設定の1バイトデータの詳細です。以下にそれぞれのビットの意味を説明します。

Pic practice 48 configuration register

 

bit7: 解像度

ADT7410は温度を計測する際、16ビットで計測するか13ビットで計測するか選択できます。16ビット計測時、測定温度の分解能は0.0078度、13ビット計測時は0.0625度になります。このビットの値は以下の意味になります。

意味
0 13ビット測定モード
1 16ビット測定モード

実践編では少数第2位まで表示しますので、分解能は16ビット(=1)に設定します。

 

bit6-bit5: 測定モード

温度計測をどのようなタイミングで測定するかの設定です。測定モードとしては以下の4種類があります。

  • 次々に休みなく測定するモード
  • マスターから測定指示をした場合に測定するモード
  • 1秒間に1回測定するモード
  • スリープモード

bit6とbit5の2ビットは以下の意味になります。

意味
00 連続測定モード。1秒間に何回も測定するため消費電力は大きくなります
01 指示した時のみ測定するモード。このビットに01を書き込むと測定してくれます。測定には約240msかかりますので、測定データの取得は工夫が必要です。(具体的にはステータスレジスタで新しいデータが測定されたから確認後、測定データを取得します。詳細説明は省略します)
10 1秒間に1階測定するモード。
11 スリープモード。スリープ指定した場合、I2C通信以外はスリープします。スリープ時にもI2C通信は可能です。

実践編では連続測定モード(=0b00)で使用します。

 

bit4: INT/CTモード

INTピンとCTピンの動作モードの設定ですが、今回使用するモジュールではINT/CTピンは使用できませんので説明は省略します。設定値は0で問題ありません。

 

bit3: INT論理

INT信号の正論理/負論理指定です。今回使用するモジュールではINT/CTピンは使用できませんので説明は省略します。設定値は0で問題ありません。

 

bit2: CT論理

CT信号の正論理/負論理指定です。今回使用するモジュールではINT/CTピンは使用できませんので説明は省略します。設定値は0で問題ありません。

 

bit1-bit0: INT/CT回数

INT/CTの割り込み信号は、INT/CT設定温度を上回ったあるいは下回った場合に発生しますが、何回上回った/下回った場合に発生させるかの設定です。今回使用するモジュールではINT/CTピンは使用できませんので説明は省略します。設定値は0b00で問題ありません。

動作設定レジスタで使用するところは少なく、16ビットモードでの測定設定を行うのみですので、動作設定の1バイトデータは「0x80」になります。

次回は取得した測定データ2バイトの温度データへの変換方法を説明します。

 

更新履歴

日付 内容
2018.8.12 新規投稿