LIS3DH搭載 3軸加速度センサーモジュール

製品情報

概要

3軸MEMS加速度センサーST社「LIS3DH」を搭載したセンシングモジュールです。デバイスの主要なピンを全て引き出し、ブレッドボードやユニバーサル基板でも使いやすいDIP16ピン形状(幅700mil)に配置しています。

信号電圧レベル3.3~5Vに対応し、幅広い種類のマイコンで制御できます。インターフェースはI2CとSPIの2方式から選択可能です。

仕様

ピン配置

ピン配置図

ピン番号 ピン名 機能 説明
1 VIN 電源 電源入力+(DC3.3~5V)
2 GND 電源 電源-
3 SDA 入出力 I2C データ
4 SCL 入出力 I2C クロック
5 CS 入力 I2C / SPI モード選択
Hレベル=I2C有効(SPIは無効)
Lレベル=SPI有効(I2Cは無効)
6 SDI 入力 SPI データ入力(ホスト→LIS3DH)
7 SDO/SA0 入出力 I2C有効時:[入力]アドレス選択(Lレベル=0x18、Hレベル=0x19)
SPI有効時:[出力]SPI データ出力(ホスト←LIS3DH)
8 SCLK 入力 SPI シリアルクロック
9 NC 空きピン
10 INT2 出力 割込み出力 INT2(補助機能/信号レベル2.8V)
11 INT1 出力 割込み出力 INT1(補助機能/信号レベル2.8V)
12 AD3 入力 A/Dコンバータ入力 ADC3(補助機能/有効測定レンジ約0.9~1.8V)
13 AD2 入力 A/Dコンバータ入力 ADC2(補助機能/有効測定レンジ約0.9~1.8V)
14 AD1 入力 A/Dコンバータ入力 ADC1(補助機能/有効測定レンジ約0.9~1.8V)
15 GND 電源 電源-
16 VOUT 電源 内蔵レギュレータ出力+(DC2.8V)

接続

ホストデバイスとKP-LIS3DHとの通信用インターフェースは、I2CまたはSPIのいずれかから選択可能です。それぞれ接続方法が異なりますので、下記の説明(I2CモードSPIモード)を参考にホストデバイスとKP-LIS3DHのインターフェース回路を作成してください。

電源電圧に関する注意(各モード共通)

I2C、SPIいずれのモードの場合も、VINピンにはホストデバイスの信号レベルと同じ電圧の電源を供給してください。下記にホストデバイスとして使われる主要マイコンボード製品の信号レベルの例を示します。

本基板は2.8V出力のLDOタイプ三端子レギュレータを搭載し、加速度センサーIC「LIS3DH」の電源には、VINピンから供給したDC3.3~5Vから生成した2.8Vが供給されます。 ホストデバイスとKP-LIS3DHとの通信に使用する信号線(I2CおよびSPIインターフェース用、合計4本)は、ロジックレベル変換ICによって中継されており、外部信号レベル3.3~5Vと、内部信号レベル2.8Vの相互変換が行われます。

※上記信号線以外の補助機能用ピン(INT1、INT2、AD1、AD2、AD3)については、信号電圧は変換されないため、信号レベルは内部電圧による2.8Vとなっています。これらのピンに2.8Vを超える電圧がかからないように注意してください。

I2Cモードでの使用法

CS(5番ピン)をHレベルにすることで、I2C通信が有効になります。I2Cモードで使用する場合は、必ずCS(5番ピン)をVINに直結してください。

I2Cは、双方向通信のシリアルインターフェースです。信号線は、SDA(データ)と SCL(クロック)の2本です。本基板のSDA(3番ピン)とSCL(4番ピン)を、それぞれホストデバイスの同名の端子と接続してください。

ホストデバイス KP-LIS3DH
I2Cピン:SDA SDA(3番ピン)
I2Cピン:SCL SCL(4番ピン)

※I2Cモードでの使用時は、SDI(6番ピン)、SCLK(8番ピン)には何も接続しないでください。

I2Cモードでの接続

I2Cアドレスの変更

I2Cは複数のデバイスを接続可能なインターフェースです。LIS3DHを同時に最大2個制御することや、LIS3DHと他種のI2Cデバイスを1つのホストから制御することができます。

I2Cバス上では、各デバイスが保有するアドレス(7ビット長のものが一般的)によってデバイスを識別します。そのため、ホストに接続されたI2Cバス内でアドレスが重複することはできません。

LIS3DHにはI2Cアドレスを2通りに変更する機能があり、アドレスを互いに異なる値に設定することで、一つのI2Cバス上に最大2個のLIS3DHを同時に制御できます。

SDO/SA0(7番ピン)を使用して、I2Cアドレスの指定が可能です。

SD0/SA0
(7番ピン)
Hレベルを入力
(または無接続のまま空ける)
Lレベルを入力
I2Cアドレス 0x19 0x18

一方のLIS3DHのアドレスを0x18、もう一方を0x19として異なるアドレスに設定することで、同一のホスト上で最大2個のLIS3DHを制御できます。また、アドレスが互いに重複しないことを条件に、LIS3DH以外のI2Cデバイスも同様にして接続・制御することが可能です。

I2Cデバイスを複数接続する場合は、SDA同士、SCL同士をそれぞれ、ホストと全てのI2Cデバイスの間で分岐させて接続します。

I2Cモードでの複数デバイス接続

I2Cのプルアップ抵抗について

本機版に搭載されている信号レベル変換IC(U3)内部に、I2Cバスに必要なプルアップ抵抗が内蔵されています。SDAおよびSCLの各信号線は、10kΩ相当の抵抗値でプルアップされています。この抵抗はICに内蔵されているため、取り除くことはできません。

また、10kΩという抵抗値はI2Cバスの配線が短い場合において有効な値です。I2Cバスの配線が長い場合や、多数のデバイスを接続する場合では、ドライブ能力が不足し通信が不安定になる場合があります。その際はVIN - SDA間およびVIN - SCL間に追加で抵抗を接続してください(抵抗を追加すると、IC内蔵の10kΩとの合成抵抗が小さくなり、ドライブ能力が上がります)。

SPIモードでの使用法

CS(5番ピン)をLレベルにすることで、SPI通信が有効になります。SPIバスを使用する場合は、ホストデバイス側で通信開始時にCSをLレベルにして、通信終了時にHレベルに戻します。

SPIインターフェースでは、CSSDISD0SCLKの4本をホストデバイスに接続します。ホストデバイスの汎用出力ピンをCS(5番ピン) に、その他3本のSPI用ピンをそれぞれ下表の通りに接続します。

ホストデバイス KP-LIS3DH
汎用出力ピン CS(5番ピン)
SPIピン:※MOSI, SDO SDI(6番ピン)
SPIピン:※MISO, SDI SDO/SA0(7番ピン)
SPIピン:※SCK, SCLK SCLK(8番ピン)

※ホストデバイス側のピンの名称はメーカーによって異なります。詳細はホストデバイスの資料を参照してください。

※SPIモードでの使用時は、SDA(3番ピン)、SCL(4番ピン)には何も接続しないでください。

SPIモードでの接続

複数のLIS3DHを制御する場合

SPIは複数のデバイスを接続可能なインターフェースです。LIS3DHや、他種のSPIデバイスを1つのホストから制御することができます。

SPIインターフェースでは、複数のデバイスで3本の信号線(SDI、SDO、SCLK)を共有する構造になっています。

複数のデバイス間で通信線が共有されているため、ホストからどのSPIデバイス宛てに通信を行うか指定するために、CSピン(チップセレクト)を使います。CSピンはホストに接続された各デバイスごとに別々に接続された独立の信号で、CSピンの状態によって通信対象を識別します。

SPIデバイスを複数接続する場合は、ホスト対SPIデバイス1個の接続に加えて、SPIデバイス間のSDI同士、SDO同士、SCLK同士を接続します。さらに、ホストの出力ピンと各デバイスのCSの接続を各デバイスについて個別に行います。

SPIモードでの複数デバイス接続

補助機能用ピンについて

本基板には、LIS3DHのデバイスが備える補助的な機能にアクセスするためのピンが引き出されています。各ピンの機能や使用方法は、LIS3DHのデータシートを参照してください。

下記ピン5本の信号電圧は全て、LIS3DHのデバイスに直結されています。ロジックレベル変換回路を経由していないため、信号レベルはVINに入力する電圧にかかわらず常に2.8Vとなります。

INT1(11番ピン)、INT2(10番ピン)

LIS3DHに内蔵された割込み出力機能で使用するピンです。ホストデバイスの入力ピンに接続して使用します。

割込み機能の設定は、I2CおよびSPIインターフェースを介して行ってください。詳細は、ICメーカーのマニュアルを参照ください。

※これらのピンへホストデバイスから信号を入力しないでください。また、2.8Vを超える電圧をかけないでください。デバイスが破損する恐れがあります。

AD1(14番ピン)、AD2(13番ピン)、AD3(12番ピン)

LIS3DHに内蔵されたA/Dコンバータへの入力ピンです。A/Dコンバータは分解能10ビット、測定レンジは約0.9~1.8Vとなっています。このピンの機能を使用しない場合、未接続のままにするか、GNDまたはVOUT(2.8V)に接続することができます。

※これらのピンへ2.8Vを超える電圧をかけないでください。デバイスが破損する恐れがあります。

プログラムについて

センサーICを動作させるには、メーカーが公開しているデータシートに従った設計の回路とプログラムが必要となります。

弊社では動作検証時にArduino用ライブラリ Adafruit LIS3DH by Adafruit(バージョン1.3.0)を使用して確認しています。

Arduino IDE 2(以下、バージョン2.3.3にて確認済)の場合、ソフトウェアを起動後[ツール]>[ライブラリを管理…]を選択します。

Arduino IDE 2:ライブラリマネージャーの呼び出し

ライブラリマネージャー」が開き、しばらく待つと一覧が表示されます。

そこから最上部の検索欄へ LIS3DH(※注意:Lの後ろは英字の「I アイ」です)と入力すると候補が絞り込まれるので、Adafruit LIS3DH by Adafruit を探して「インストール」をクリックしてください。

Arduino IDE 2:ライブラリ検索

追加でダイアログ「ライブラリの依存関係をインストール」が表示された場合は、「全てをインストール」をクリックしてください。Adafruit LIS3DHを動作させるために必要となる(依存関係のある)ライブラリがあわせてインストールされます。

Arduino IDE 2:ライブラリの依存関係ダイアログ

ライブラリのインストールが完了するのを待機します。 インストールが成功すると、ライブラリマネージャーの項目内にあった「インストール」ボタンが「削除」に変わります。

Arduino IDE 2:ライブラリインストール完了

ライブラリのインストールを行うと、サンプルスケッチ(プログラム)も自動的にインストールされます。

[ファイル]>[スケッチ例]>[Adafruit LIS3DH]と選択することでいくつかのサンプルプログラム候補が現れます。

Arduino IDE 2:スケッチ例

例:サンプルプログラム名 acceldemo の場合は、I2Cモードで接続したLIS3DHの加速度の測定値を「Arduino IDE」のシリアルモニタに出力します。

※本製品では、SDO/SA0(7番ピン)の入力レベルによってI2Cアドレスが変化します(0x18または0x19)。SDO/SA0ピンが未接続の場合は0x19となります。サンプルプログラムの設定が違う場合は下記の通りに変更してください。アドレスが違うと正常に動作しません。

if (! lis.begin(0x18)) { // change this to 0x19 for alternative i2c address ↓変更 if (! lis.begin(0x19)) { // change this to 0x19 for alternative i2c address

Arduino IDE 2:サンプルスケッチacceldemo I2Cアドレス変更箇所

スケッチ例の内容を直接上書きすることはできません。スケッチ例に変更を加えた場合は、変更後のスケッチは別名で保存する必要があります。保存した変更済みスケッチは、スケッチ例ではなく「スケッチブック」に登録されます。以後は[ファイル]>[スケッチブック]から呼び出してください。

マイコンボードと本基板をI2Cモードで接続した後、スケッチをコンパイルしてマイコンボードに書き込み、シリアルモニタを開くとメッセージが表示されます。

※回路設計やプログラムの作成、オープンソース・ソフトウェア、上記サンプルプログラムの動作に関するご質問への回答等のサポートはいたしかねます。あらかじめご了承ください。

基板寸法図

基板寸法図

記載の寸法は標準的なものであり、実際の寸法と相違ある場合は実機を優先します。

軸方向

本基板でのX, Y, Z各軸の方向は下図の通りです。

軸方向図

回路図

回路図

リンク

更新履歴


本文書は、Visual Studio Code の Markdown PDF 拡張機能を使用して変換されました。この拡張機能は MIT ライセンス の下で提供されています。