こんにちは
前回の「I2C RTCデバイスにアクセスする」では、REX-USB61にI2Cバス接続で
RTC (Real Time Clock)へのアクセスについてお話しました。
今回のSPI/I2Cデバイスは、気圧センサーです。
気圧センサーは、最近ではスマートフォン、タブレット端末、活動量計や時計
などにも搭載されており、気圧だけでなく高度の計測等にも利用されています。
具体的なデバイスとしてST Micro製 気圧センサー LPS331AP を取り上げます。
1. LPS331APについて
まずは、今回使用するSPI/I2CデバイスのLPS331APについて簡単に見ていきましょう。
※ 詳しい仕様は、ST Microの以下を参照してください。
http://www.st-japan.co.jp/web/jp/catalog/sense_power/PF251601
1-1. LPS331APの仕様
LPS331APは、I2C と SPI の両方に対応していますが、今回は I2Cバス接続で使用するので
I2Cバスモードに絞って説明します。
入出力信号(I2Cモード関連のみ抜粋)
LPS331APをI2Cモードで使用する場合での主な入出力信号には以下のものがあります。
1-2. LPS331APのレジスタ構成
LPS331APは、以下のレジスタを内蔵しています。
上記レジスタから今回は以下のレジスタを使用して制御します。
デバイス識別レジスタ(WHO_AM_I)
LPS331APのチップを識別するためのレジスタで常に0xBBが読み出されます。
気圧データレジスタ(PRESS_OUT_XL, PRESS_OUT_L, PRESS_OUT_H)
気圧データは、3バイトの2の補数(符号付24bit)で表されます。
気圧(mbar) = [PRESS_OUT_H] ×256×256 + [PRESS_OUT_L] ×256 + [PRESS_OUT_XL] / 4096
温度データレジスタ(TEMP_OUT_L, TEMP_OUT_H)
温度データは、2バイトの2の補数(符号付16bit)で表されます。
温度(℃) = ( [TEMP_OUT_H] ×256 + [TEMP_OUT_L] / 480 ) + 42.5
2. LPS331APとの接続
今回は、LPS331APが実装された市販の気圧・温度センサーモジュール(*)を使用します。
REX-USB61とは、LPS331APの信号線のSCL, SDA, Vdd, GND のみを接続し、他の信号は今回は使用しません。
*サンハヤト製 MM-TX803 を使用
関連記事
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)