10月 162014
 
3. LPS331APの制御

気圧・温度センサーモジュールとの接続ができたら、Usb61Utyを起動して実際に制御してみます。

USB61UtyからLPS331APを制御して以下の操作を行います。
(1) LPS331APから温度を取得する
(2) LPS331APから気圧を取得する

3-1. 電源供給等の設定

Usb61Uty-0001

3-2. Device IDの確認

レジスタ[WHO_AM_I:0Fh]を読み出し、その値が、[BBh]であることを確認します。

Usb61Uty-0002

Usb61Uty-0003

転送データと実行結果は以下のとおりです。
Usb61Uty-0004

3-3. センサーの動作開始

まず最初に、センサーの動作を開始させるため、レジスタ[CTRL_REG1:20h]に[E0h]を書き込みます。
Power down制御[Bit7]をActive modeに、出力データテート[Bit6-Bit4]を気圧データ、温度データともに
12.5 Hz での出力レートに設定します。

Usb61Uty-0005

3-4. 温度情報の読出し

レジスタ[TEMP_OUT_L:2B]とレジスタ[TEMP_OUT_H:2C]から
各1バイトずつ順番に合計2バイトの温度データを読み出します。

連続して複数バイトのデータを読み出す場合は、最初に指定するレジスタアドレスの
最上位ビットを1にする必要があるため、先頭のTEMP_OUT_L のレジスタアドレスとして
2Bh ではなく ABh を指定します。

Usb61Uty-0006

TEMP_OUT_L と TEMP_OUT_H の2バイトを連続して読み出すため
データ転送長は、 02h を指定します。

Usb61Uty-0007

実行結果

Usb61Uty-0008

以下の手順で実際に読み出したデータから気温を算出します。

(1) TEMP_OUT_L と TEMP_OUT_H から16ビット値に変換します。

(2) この値を符号付16ビット値として以下の式にあてはめれば温度[℃]が算出されます

T / 480 + 42.5 = 温度[℃]

実際に今回読み出された以下の値を使って算出します。

TEMP_OUT_L = 2Ah
TEMP_OUT_H = E2h

(1) T = E22Ah (= -7638 )
(2) -7638 / 480 + 42.5 = 26.6

温度の値として 26.6 ℃ が得られます。

3-5. 気圧情報の読出し

レジスタ[PRESS_OUT_XL:28],[PRESS_OUT_L:29],[PRESS_OUT_H:2A]から
各1バイトずつ順番に合計3バイトの気圧データを読み出します。

連続して複数バイトのデータを読み出す場合は、最初に指定するレジスタアドレスの
最上位ビットを1にする必要があるため、先頭のPRESS_OUT_XL のレジスタアドレスとして
28h ではなく A8h を指定します。

Usb61Uty-0009

3バイトを連続して読み出すためデータ転送長は、 03h を指定します。

Usb61Uty-0010

実行結果

Usb61Uty-0011

以下の手順で実際に読み出したデータから気圧を算出します。

(1) PRESS_OUT_XL, PRESS_OUT_L, PRESS_OUT_Hから24ビット値に変換します。

(2) この値を4096で割れば気圧[mbar]が算出されます

実際に今回読み出された以下の値を使って算出します。

PRESS_OUT_XL = CFh
PRESS_OUT_L = C4h
PRESS_OUT_H = 3Fh

(1) P = 3FC4CFh (= 4179151 )
(2) 4179151 / 4096 = 1020.3

気圧の値として 1020.3 mbar が得られます。

今回は、REX-USB61にI2C接続された気圧センサーからユーティリティソフト Usb61uty を使って温度と気圧を読み出す処理を説明しました。
さて、次回からREX-USB61のAPIライブラリを使って実現するプログラムの作成について説明していきます。

今後、取り上げてほしいデバイス等がありましたら、ブログコメントへお知らせください。


関連記事
SPI/I2C Serial EEPROMへのアクセスを簡単に(その1)
SPI/I2C Serial EEPROMへのアクセスを簡単に(その2)
SPI/I2C Serial EEPROMへのアクセスを簡単に(その3)
SPI/I2C Serial EEPROMへのアクセスを簡単に(その4)
SPI/I2C Serial EEPROMへのアクセスを簡単に(その5)

I2C RTCデバイスにアクセスする


この記事で紹介した製品

REX-USB61製品画像
REX-USB61 - USB-SPI/I2Cプロトコル・エミュレーター

 返信する

以下のHTML タグと属性が利用できます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(必須)

(必須)

*