ADXL345の概要と、ADXL345用OSS-ECALの提供についてご紹介いたします。ADXL345は、Analog Devices製の高精度3軸加速度センサー(±2 g, ±4 g, ±8 g, ±16 g)です。
MCUインタフェース:I2C, SPI
ご注意:このリソースの元の言語は英語です。 翻訳は概要を便宜的に提供するもので、機械翻訳を使用していることがあり、私たちは翻訳の正確性および妥当性につきましては一切保証いたしません。 また、実際の設計などの前には、必ず最新版Datasheetをご参照くださいますようお願いいたします。
ADXL345
概要
ADXL345は小型、薄型、低消費電力の3軸加速度センサーで、最大±16gの測定範囲で高分解能(13ビット)の加速度計測が可能です。デジタル出力データは16ビットの「2の補数」フォーマットで、SPI(3または4線)あるいはI2Cのデジタル・インターフェースを介してアクセスできます。
ADXL345は、モバイル機器アプリケーションに非常に適しています。この製品は、傾き検出アプリケーションのような重力の静的加速度を計測することができると同時に、動き、衝撃あるいは振動のような動的加速度も計測できます。その高分解能(4 mg/LSB)によって、1.0°以下の傾き変化を測定することが可能です 。
この製品には複数のスペシャル・センシング機能が内蔵されています。アクティビティ・インアクテビティ検出機能は、加速度の有無や、いずれかの軸の加速度がユーザー設定レベルを超えたかどうかを検出します。タップ・センシングはシングル・タップとダブル・タップを検出します。自由落下検出はデバイスが自由落下しているかを検出します。これらの機能は、2つの割り込み出力ピンの一つに割り当てることができます。内蔵された、特許申請中の32レベルのファーストイン、ファーストアウト(FIFO)バッファに、加速度データを格納する事でホストプロセッサへ通信を最小限に減らすことができます。
低消費電力モードでは、超低消費電力でのスレシュホールド・センシングと加速度計測により、加速度の入力信号に基づいたインテリジェント・パワーマネージメントを可能にします。
ADXL345は小型・薄型の3mm×5mm×1mm、14ピンプラスチック・パッケージを採用しています。
特徴
- 超低消費電力:VS = 2.5 V(代表値)で測定モード時23 µA、スタンバイモード時0.1 µAという低電力
- 消費電力は帯域幅に応じて自動的に増減
- ユーザーが選択可能な解像度
固定10ビット分解能
フル分解能(gレンジとともに分解能が向上、±16gで最大13ビット分解能)(すべてのgレンジで4mg/LSBのスケールファクターを維持 - FIFO技術による組み込みメモリ管理システムにより、ホスト・プロセッサの負荷を最小化
- シングルタップ/ダブルタップ検出
- アクティビティ/インアクティビティのモニタリング
- フリーフォール検出
- 電源電圧範囲:2.0 V~3.6 V
- 入出力電圧範囲: 1.7 V~VS
- SPI(3線式および4線式)およびI2Cデジタル・インターフェース
- いずれかの割り込みピンにマッピング可能な柔軟な割り込みモード
- 測定レンジはシリアルコマンドで選択可能
- シリアル・コマンドで帯域幅を選択可能
- 広い温度範囲(-40℃~+85)
- 10,000g 耐久
- 鉛フリー/RoHS対応
- 小さくて薄い: 3mm×5mm×1mmLGAパッケージ
用途
- ハンドセット
- 医療機器
- ADXL345-EPは、防衛および宇宙航空アプリケーション(AQEC)をサポート
OSS-ECAL仕様
API関数
OSS-ECALのAPI関数は、基本的に定周期Thread(TASK)から関数コールされることを前提としています。
etSTS oADXL345_INIT( void )
oADXL345_INIT関数は、次のADXL345の初期設定を行い、計測モードへ移行する関数です。尚、下表のuser_setting.hのRegister初期値を設定してください。
– Step1 Data Format Setting
– Step2 Data rate and power mode control Setting
– Step3 Offset-X, Offset-Y, Offset-Z compensation Setting
– Step4 Activity Detection Setting
– Step5 Inactivity Detection Setting
– Step6 Single Tap Setting
– Step7 Double Tap Setting
– Step8 Free-Fall Setting
– Step9 FIFO Setting Setting
– Step10 Interrupt Enable and Mapping Setting
– Step11 Measurement Mode Enable
Label名 | Register | 仮の初期値 |
---|---|---|
DATA_FORMAT_INI | DATA_FORMAT | bit7: SELF_TEST_EN = 0 bit6: SPI_MODE = 0 bit5: INT_INVERT = 0 bit4: RESERVED_BIT = 0 bit3: FULL_RES = 1 bit2: JUSTIFY_MODE = 0 bit1: RANGE_SEL1 = 1 bit0: RANGE_SEL0 = 0 |
BW_RATE_INI | BW_RATE | bit4: LOW_POWER_EN = 0 bit3: RATE_SEL3 = 1 bit2: RATE_SEL2 = 0 bit1: RATE_SEL1 = 1 bit0: RATE_SEL0 = 0 |
OFSX_INI | OFSX [15.6 mg/LSB] | 0.0 |
OFSY_INI | OFSY [15.6 mg/LSB] | 0.0 |
OFSZ_INI | OFSZ [15.6 mg/LSB] | 0.0 |
THRESH_ACT_INI | THRESH_ACT [62.5 mg/LSB] | 0.5 |
ACT_INACT_CTL_INI | ACT_INACT_CTL | bit7: ACT_MODE = 0 bit6: ACT_X_EN = 1 bit5: ACT_Y_EN = 1 bit4: ACT_Z_EN = 1 bit3: INACT_MODE = 0 bit2: INACT_X_EN = 1 bit1: INACT_Y_EN = 1 bit0: INACT_Z_EN = 1 |
THRESH_INACT_INI | THRESH_INACT [62.5 mg/LSB] | 0.2 |
TIME_INACT_INI | TIME_INACT [1 sec/LSB] | 5.0 |
THRESH_TAP_INI | THRESH_TAP [62.5 mg/LSB] | 1.5 |
DUR_INI | DUR [625 us/LSB] | 10.0 |
TAP_AXES_INI | TAP_AXES | bit3: SUPPRESS_EN = 0 bit2: TAP_X_EN = 1 bit1: TAP_Y_EN = 1 bit0: TAP_Z_EN = 1 |
Latent_INI | Latent [1.25 ms/LSB] | 20.0 |
Window_INI | Window [1.25 ms/LSB] | 80.0 |
THRESH_FF_INI | THRESH_FF [62.5 mg/LSB] | 0.375 |
TIME_FF_INI | TIME_FF [5 ms/LSB] | 300.0 |
FIFO_MODE | FIFO_CTL bit7-bit6 次の値から選択 iFIFO_BYPASS, iFIFO_FIFO, iFIFO_STREAM, iFIFO_TRIGGER | iFIFO_STREAM |
FIFO_TRIGGER | FIFO_CTL bit5 | 0 |
FIFO_SAMPLE | FIFO_CTL bit4-bit0 | 16 |
INT_ENABLE_INI | INT_ENABLE | bit7: DATA_READY_EN = 1 bit6: SINGLE_TAP_EN = 0 bit5: DOUBLE_TAP_EN = 0 bit4: Activity_EN = 0 bit3: Inactivity_EN = 0 bit2: FREE_FALL_EN = 0 bit1: WATER_MARK_EN = 1 bit0: OVER_RUN_EN = 0 |
INT_MAP_INI | INT_MAP | bit7: DATA_READY_INT = 0 bit6: SINGLE_TAP_INT = 0 bit5: DOUBLE_TAP_INT = 0 bit4: Activity_INT = 0 bit3: Inactivity_INT = 0 bit2: FREE_FALL_INT = 0 bit1: WATER_MARK_INT = 0 bit0: OVER_RUN_INT = 0 |
MEASURE_MODE | POWER_CTL 次の値から選択 iMEASURE, iSLEEP, iAUTO_SLEEP, iSTANDBY | iMEASURE |
WAKEUP_FREQ | POWER_CTL 次の値から選択 1 = 1 Hz, 2 = 2 Hz, 4 = 4 Hz, 8 = 8 Hz | 8 |
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_I2C_OBJECT | I2Cオブジェクト選択エラー | ||
eSTS_ERR_HAL_OTHERS_RUN | 他のアプリケーションがHAL実行中 | ||
eSTS_ERR_HAL_I2C | HAL I2Cエラー | ||
eSTS_ERR_PARAMETER | 次の値が範囲外の場合 -2.0 g ≦ OFSX_INI ≦ 2.0 g -2.0 g ≦ OFSY_INI ≦ 2.0 g -2.0 g ≦ OFSZ_INI ≦ 2.0 g 0.0 g ≦ THRESH_ACT_INI ≦ 16 g 0.0 g ≦ THRESH_INACT_INI ≦ 16 g 0 sec ≦ TIME_INACT_INI ≦ 255 sec 0.0 g ≦ THRESH_TAP_INI ≦ 16 g 0 ms ≦ DUR_INI ≦ 159.375 ms 0 ms ≦ Latent_INI ≦ 318.75 ms 0 ms ≦ Window_INI ≦ 318.75 ms 0.0 g ≦ THRESH_FF_INI ≦ 16 g 0 ms ≦ TIME_FF_INI ≦ 1275 ms 1 ≦ FIFO_SAMPLE ≦ 31 FIFO_MODEの値が、iFIFO_BYPASS、iFIFO_FIFO、iFIFO_STREAM、iFIFO_TRIGGER以外の場合 MEASURE_MODEの値が、iMEASURE、iSLEEP、iAUTO_SLEEP、iSTANDBY以外の場合 WAKEUP_FREQの値が、1、2、4、8以外の場合 |
etSTS oADXL345_WRITE_ACT( float32 thresh_act_g, uint8 act_ctl )
oADXL345_WRITE_ACT関数は、ADXL345 加速度センサのアクティブな状態を検出するための閾値とアクションを設定するAPI関数です。
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_I2C_OBJECT | I2Cオブジェクト選択エラー | ||
eSTS_ERR_HAL_OTHERS_RUN | 他のアプリケーションがHAL実行中 | ||
eSTS_ERR_HAL_I2C | HAL I2Cエラー | ||
eSTS_ERR_PARAMETER | 次の値が範囲外の場合 0.0 g ≦ thresh_act_g ≦ 16 g | ||
引数 IN | float32 thresh_act_g | Register THRESH_ACTの設定値 | [62.5 mg/LSB] |
uint8 act_ctl | Register ACT_INACT_CTLの設定値 | bit7 ACT ac/dc bit6 ACT_X enable bit5 ACT_Y enable bit4 ACT_Z enable bit3 INACT ac/dc bit2 INACT_X enable bit1 INACT_Y enable bit0 INACT_Z enable |
etSTS oADXL345_WRITE_INACT( float32 thresh_inact_g, float32 time_inact_s, uint8 inact_ctl )
oADXL345_WRITE_INACT関数は、ADXL345 加速度センサの非アクティブ状態を検出するための閾値、時間、アクションを設定 するAPI関数です。
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_I2C_OBJECT | I2Cオブジェクト選択エラー | ||
eSTS_ERR_HAL_OTHERS_RUN | 他のアプリケーションがHAL実行中 | ||
eSTS_ERR_HAL_I2C | HAL I2Cエラー | ||
eSTS_ERR_PARAMETER | 次の値が範囲外の場合 0.0 g ≦ thresh_inact_g ≦ 16 g 0 sec ≦ time_inact_s ≦ 255 sec | ||
引数 IN | float32 thresh_inact_g | Register THRESH_INACTの設定値 | [62.5 mg/LSB] |
float32 time_inact_s | Register TIME_INACTの設定値 | [1 sec/LSB] | |
uint8 act_ctl | Register ACT_INACT_CTLの設定値 | bit7 ACT ac/dc bit6 ACT_X enable bit5 ACT_Y enable bit4 ACT_Z enable bit3 INACT ac/dc bit2 INACT_X enable bit1 INACT_Y enable bit0 INACT_Z enable |
etSTS oADXL345_WRITE_ST( float32 thresh_g, float32 duration_ms, uint8 axis )
oADXL345_WRITE_ST関数は、ADXL345 シングルタップ検出機能の設定するAPI関数です。
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_I2C_OBJECT | I2Cオブジェクト選択エラー | ||
eSTS_ERR_HAL_OTHERS_RUN | 他のアプリケーションがHAL実行中 | ||
eSTS_ERR_HAL_I2C | HAL I2Cエラー | ||
eSTS_ERR_PARAMETER | 次の値が範囲外の場合 0.0 g ≦ thresh_g ≦ 16 g 0 ms ≦ duration_ms ≦ 159.375 ms | ||
引数 IN | float32 thresh_g | Register THRESH_TAPの設定値 | [62.5 mg/LSB] |
float32 duration_ms | Register DURの設定値 | [625 us/LSB] | |
uint8 axis | Register TAP_AXESの設定値 | bit3 Suppress bit2 TAP_X enable bit1 TAP_Y enable bit0 TAP_Z enable |
etSTS oADXL345_WRITE_DT( float32 thresh_g, float32 duration_ms, float32 latent_ms, float32 window_ms, uint8 axis )
oADXL345_WRITE_DT関数は、ADXL345 ダブルタップ検出機能の設定するAPI関数です。
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_I2C_OBJECT | I2Cオブジェクト選択エラー | ||
eSTS_ERR_HAL_OTHERS_RUN | 他のアプリケーションがHAL実行中 | ||
eSTS_ERR_HAL_I2C | HAL I2Cエラー | ||
eSTS_ERR_PARAMETER | 次の値が範囲外の場合 0.0 g ≦ thresh_g ≦ 16 g 0 ms ≦ duration_ms ≦ 159.375 ms 0 ms ≦ latent_ms ≦ 318.75 ms 0 ms ≦ window_ms ≦ 318.75 ms | ||
引数 IN | float32 thresh_g | Register THRESH_TAPの設定値 | [62.5 mg/LSB] |
float32 duration_ms | Register DURの設定値 | [625 us/LSB] | |
float32 latent_ms | Register Latentの設定値 | [1.25 ms/LSB] | |
float32 window_ms | Register Windowの設定値 | [1.25 ms/LSB] | |
uint8 axis | Register TAP_AXESの設定値 | bit3 Suppress bit2 TAP_X enable bit1 TAP_Y enable bit0 TAP_Z enable |
etSTS oADXL345_WRITE_FF( float32 thresh_mg, float32 time_ms )
oADXL345_WRITE_FF関数は、ADXL345 自由落下検出機能の設定するAPI関数です。
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_I2C_OBJECT | I2Cオブジェクト選択エラー | ||
eSTS_ERR_HAL_OTHERS_RUN | 他のアプリケーションがHAL実行中 | ||
eSTS_ERR_HAL_I2C | HAL I2Cエラー | ||
eSTS_ERR_PARAMETER | 次の値が範囲外の場合 0.0 g ≦ thresh_g ≦ 16 g 0 ms ≦ time_ms ≦ 1275 ms | ||
引数 IN | float32 thresh_g | Register THRESH_FFの設定値 | [62.5 mg/LSB] |
float32 time_ms | Register TIME_FFの設定値 | [5 ms/LSB] |
etSTS oADXL345_WRITE_OFFSET( float32 offset_x_g, float32 offset_y_g, float32 offset_z_g )
oADXL345_WRITE_OFFSET関数は、ADXL345 加速度X-axis-XやY-axis、Z-axisのオフセットを設定するAPI関数です。
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_I2C_OBJECT | I2Cオブジェクト選択エラー | ||
eSTS_ERR_HAL_OTHERS_RUN | 他のアプリケーションがHAL実行中 | ||
eSTS_ERR_HAL_I2C | HAL I2Cエラー | ||
eSTS_ERR_PARAMETER | 次の値が範囲外の場合 -2.0 g ≦ offset_x_g ≦ 2.0 g -2.0 g ≦ offset_y_g ≦ 2.0 g -2.0 g ≦ offset_z_g ≦ 2.0 g | ||
引数 IN | float32 offset_x_g | Register OFSXの設定値 | [15.6 mg/LSB] |
float32 offset_y_g | Register OFSYの設定値 | [15.6 mg/LSB] | |
float32 offset_z_g | Register OFSZの設定値 | [15.6 mg/LSB] |
etSTS oADXL345_WRITE_INT( uint8 int_enable_mask, uint8 int_map )
oADXL345_WRITE_INT関数は、ADXL345 割り込み設定するAPI関数です。
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_I2C_OBJECT | I2Cオブジェクト選択エラー | ||
eSTS_ERR_HAL_OTHERS_RUN | 他のアプリケーションがHAL実行中 | ||
eSTS_ERR_HAL_I2C | HAL I2Cエラー | ||
引数 IN | uint8 int_enable_mask | Register INT_ENABLEの設定値 | bit7 DATA_READY bit6 SINGLE_TAP bit5 DOUBLE_TAP bit4 Activity bit3 Inactivity bit2 FREE_FALL bit1 Watermark bit0 Overrun |
uint8 int_map | Register INT_MAPの設定値 | bit7 DATA_READY bit6 SINGLE_TAP bit5 DOUBLE_TAP bit4 Activity bit3 Inactivity bit2 FREE_FALL bit1 Watermark bit0 Overrun |
etSTS oADXL345_WRITE_FIFO( uint8 fifo, uint8 samples, uint8 int_map )
oADXL345_WRITE_FIFO関数は、ADXL345 FIFO 設定するAPI関数です。
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_I2C_OBJECT | I2Cオブジェクト選択エラー | ||
eSTS_ERR_HAL_OTHERS_RUN | 他のアプリケーションがHAL実行中 | ||
eSTS_ERR_HAL_I2C | HAL I2Cエラー | ||
eSTS_ERR_PARAMETER | 次の値が範囲外の場合 1 ≦ samples≦ 31 fifoの値が、iFIFO_BYPASS、iFIFO_FIFO、iFIFO_STREAM、iFIFO_TRIGGER以外の場合 | ||
引数 IN | uint8 fifo | Register FIFO_CTLの設定値 | bit7-bit6 FIFO_MODE 次の値から選択 iFIFO_BYPASS、iFIFO_FIFO、iFIFO_STREAM、iFIFO_TRIGGER |
uint8 samples | Register FIFO_CTLの設定値 | bit4-bit0 Samples 1~31の値 | |
uint8 int_map | Register INT_MAPの設定値 | bit7 DATA_READY bit6 SINGLE_TAP bit5 DOUBLE_TAP bit4 Activity bit3 Inactivity bit2 FREE_FALL bit1 Watermark bit0 Overrun |
etSTS oADXL345_WRITE_MODE( uint8 mode, uint8 wakeup )
oADXL345_WRITE_MODE関数は、ADXL345 動作モードの測定モード、スリープモード、オートスリープモード、スタンバイモードを切り替えるAPI関数です。
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_I2C_OBJECT | I2Cオブジェクト選択エラー | ||
eSTS_ERR_HAL_OTHERS_RUN | 他のアプリケーションがHAL実行中 | ||
eSTS_ERR_HAL_I2C | HAL I2Cエラー | ||
eSTS_ERR_PARAMETER | modeの値が、iMEASURE、iSLEEP、iAUTO_SLEEP、iSTANDBY以外の場合 wakeupの値が、1、2、4、8以外の場合 | ||
引数 IN | uint8 mode | Register POWER_CTLの設定値 | bit4-bit2 Power mode 次の値から選択 iAUTO_SLEEP, iMEASURE, iSLEEP, iSTANDBY |
uint8 wakeup | Register POWER_CTLの設定値 | bit1-bit0 Wakeup 次の値から選択 1, 2, 4, 8 |
etSTS oADXL345_READ_REG( uint8 adr, uint8* val )
oADXL345_READ_REG関数は、ADXL345 Registerアドレスを指定してRegisterの値を読み込み、読み込んだ値をvalに保存するAPI関数です。
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_I2C_OBJECT | I2Cオブジェクト選択エラー | ||
eSTS_ERR_HAL_OTHERS_RUN | 他のアプリケーションがHAL実行中 | ||
eSTS_ERR_HAL_I2C | HAL I2Cエラー | ||
引数 IN | uint8 adr | 読み込むRegisterアドレス | |
引数OUT | uint8* val | 読み込んだRegister値をvalに保存 |
etSTS oADXL345_READ_ACC( stACC* axis )
oADXL345_READ_ACC 関数は、Register DATA_FORMAT の値を読み取った後、Register DATAX0:DATAX1、DATAY0:DATAY1、DATAZ0:DATAZ1 の値を取得し、DATA_FORMAT の Range 設定に基づいて、X 軸の値を axis.acc_x
、Y 軸の値を axis.acc_y
、Z 軸の値を axis.acc_z
に保存する API 関数です。
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_I2C_OBJECT | I2Cオブジェクト選択エラー | ||
eSTS_ERR_HAL_OTHERS_RUN | 他のアプリケーションがHAL実行中 | ||
eSTS_ERR_HAL_I2C | HAL I2Cエラー | ||
引数 OUT | stACC* axis | DATAX0:DATAX1をRangeにより変換し、axis.acc_xに保存 DATAY0:DATAY1をRangeにより変換し、axis.acc_yに保存 DATAZ0:DATAZ1をRangeにより変換し、axis.acc_zに保存 | [mg] |
etSTS oADXL345_READ_ACC_FIFO( stACC* axis )
oADXL345_READ_ACC_FIFO 関数は、Register DATA_FORMATの値を読み取った後、FIFO 設定に基づいて Register DATAX0:DATAX1、DATAY0:DATAY1、DATAZ0:DATAZ1 の値を取得し、DATA_FORMAT の Range 設定に基づいて、X 軸の値を axis.acc_x、Y 軸の値を axis.acc_y、Z 軸の値を axis.acc_z に保存する API 関数です。
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_I2C_OBJECT | I2Cオブジェクト選択エラー | ||
eSTS_ERR_HAL_OTHERS_RUN | 他のアプリケーションがHAL実行中 | ||
eSTS_ERR_HAL_I2C | HAL I2Cエラー | ||
eSTS_ERR_DATA_STALE | Register FIFO_STATUS Entries>32の場合 | ||
引数 OUT | stACC* axis | DATAX0:DATAX1をRangeにより変換し、axis.acc_xに保存 DATAY0:DATAY1をRangeにより変換し、axis.acc_yに保存 DATAZ0:DATAZ1をRangeにより変換し、axis.acc_zに保存 | [mg] |
etSTS oADXL345_SELF_TEST_MODE( uint8 sw )
oADXL345_SELF_TEST_MODE関数は、ADXL345 セルフテストモードの有効/無効を設定するAPI関数です。
戻り値 | etSTS | OSS-ECALステータスコード | |
eSTS_FIN | 正常終了 | ||
eSTS_ERR_I2C_OBJECT | I2Cオブジェクト選択エラー | ||
eSTS_ERR_HAL_OTHERS_RUN | 他のアプリケーションがHAL実行中 | ||
eSTS_ERR_HAL_I2C | HAL I2Cエラー | ||
引数 IN | uint8 sw | Register DATA_FORMATのSELF_TEST bitの設定値 | sw = iON: Enable self-test mode sw = iOFF: Disable self-test mode |
Sampleアプリケーション
OSS-ECALには、sampleフォルダ内にサンプルアプリケーションが含まれています。ここでは、そのアプリケーションの概要について説明いたします。OSS-ECALを皆様の製品プログラムに組み込む際の参考資料としてご活用ください。

State | vgADXL345_COMMAND | 状態遷移条件 | 処理概要 | API関数 |
---|---|---|---|---|
Initialize | iADXL345_INITIALIZE | 1. 初回 | ADXL345の初期設定 | oADXL345_INIT |
Measure | iADXL345_MEASUREMENT | 1. Initialize完了 2. vgADXL345_COMMAND=iADXL345_MEASUREMENT | 3軸加速度計測 | oADXL345_READ_REG |
Self-test | iADXL345_SELF_TEST | 1. vgADXL345_COMMAND=iADXL345_SELF_TEST | セルフテスト | oADXL345_SELF_TEST_MODE |
Calibration | iADXL345_CALIBRATION | 1. vgADXL345_COMMAND=iADXL345_CALIBRATION | キャリブレーション | oADXL345_WRITE_OFFSET oADXL345_WRITE_ST oADXL345_WRITE_DT oADXL345_WRITE_ACT oADXL345_WRITE_INACT oADXL345_WRITE_FF |
Auto-Sleep | iADXL345_AUTO_SLEEP | 1. vgADXL345_COMMAND=iADXL345_AUTO_SLEEP | オートスリープ | – |
Error | iADXL345_ERROR | 1. vgADXL345_COMMAND=iADXL345_ERROR | Error処理* | -* |
* 製品プログラムで対応してください。
HALサポート
OSS-ECALのHAL対応は、次の通りです。(順次拡大中)尚、同じHALであってもVerやMCU、開発環境が異なると動作が合わない場合がありますので、ご注意ください。
メーカ | SDK/IDE ツール | HAL名称 | Ver | HALNAME | Support |
---|---|---|---|---|---|
Arduino | Arduino IDE | Arduino | 1.8.6 | ARDUINO | X |
Arm | Keil MDK v6 | Mbed OS | 6.17.0 | MBED | X |
Debian | – | GNU/Linux | 10.3 | Linux | X |
Infineon | ModusToolbox | mtb-hal-cat1 | 2.4.3 | ModusToolbox | X |
NXP | MCUXpresso SDK | SDK_2.x_EVKB-IMXRT1050 | 2.16 | iMXRT1051B1052B | X |
NXP | PlatformSDK_S32K1_2022_02 | AUTOSAR MCAL | 4.4 | MCAL | – |
Renesas | Synergy Software Package | HAL | 2.6.0 | SSP | X |
STMicroelectronics | STM32Cube | STM32CubeF4 | V1.28.1 | STM32F4 | X |
開発環境
OSS-ECAL開発時のMCUおよび開発環境は、次の通りです。
HALNAME | メーカ | 開発ボード | MCU | IDE |
---|---|---|---|---|
ARDUINO | Arduino | 1.Mega 2560 Rev3 2.Arduino Pro Mini 3.3V | ATmega2560 ATmega328P | Arduino IDE 2.3.3 |
MBED | STMicroelectronics | STM32 Nucleo-64 boards | STM32F401RETx | Arm Keil Studio Cloud |
Linux | BeagleBoard | BeagleBone Black | TI AM335x | – |
ModusToolbox | Infineon | CY8CPROTO-063-BLE PSoC 6 BLE Prototyping Kit | CYBLE-416045-02 | ModusToolbox |
iMXRT1051B1052B | NXP | IMXRT1050-EVKB | i.MX RT1050 | MCUXpresso IDE |
MCAL | STMicroelectronics | S32K144EVB-Q100 | S32K144 | S32 Design Studio for S32 Platform |
SSP | Renesas | S7G2 SK | R7FS7G27H3A01CFC | e² studio for Renesas Synergy |
STM32F4 | STMicroelectronics | STM32 Nucleo-64 boards | STM32F401RETx | STM32CubeIDE |
File構成
フォルダ* | ファイル | 概要 |
---|---|---|
ADXL345_HALNAME_VERSION/sample | sample.c (.cpp) | サンプル・アプリケーション・プログラム |
sample.h | サンプル・アプリケーション・ヘッダ | |
ADXL345_HALNAME_VERSION | oADXL345.c (.cpp) | ADXL345用OSS-ECALプログラム |
oADXL345.h | ADXL345用OSS-ECALヘッダ | |
oss_ecal.h | OSS-ECAL 共通ヘッダ | |
ADXL345_ARDUINO.ino | Arduino用サンプル・アプリケーション・プログラム | |
user_setting.c (.cpp) | ユーザ設定定数・テーブル | |
user_setting.h | ユーザ設定ヘッダ | |
oHAL_i2c_stm32f4.c | STM32Cube FW_F4用HALプログラム | |
oHAL_i2c_stm32f4.h | STM32Cube FW_F4用HALヘッダ | |
readme.md | Readme | |
OSS-ECAL Terms of Use.txt | OSS-ECAL利用条件 |
* HALNAMEは、HALサポートを参照してください。
OSS-ECAL ダウンロード
OSS-ECALのダウンロードは、英語版OSS-ECALサイトからお願いいたします。なお、ダウンロードを行う際は、英語版OSS-ECALサイトにログインしてから操作してください。
組込み方法
ユーザプログラムに複数のOSS-ECAL(同じMCU機能の電子部品)を組み込む方法
ユーザプログラムに複数のOSS-ECAL(異なるMCU機能の電子部品)を組み込む方法
注意事項
サンプル版OSS-ECALは、優先順位の異なるThread(Task)や割込みで用いることを前提としていません。下記の例のような使い方はしないでください。
例)同じADCグループに各センサーが割り当てられ、優先順位が異なる処理でOSS-ECAL APIを実行すると、正しい値を取得できない場合があります。
ADC Gr0 Ch0 温度センサ AD22100A 100ms周期 Thread(優先順位低)で温度取込み
ADC Gr0 Ch1 圧力センサ MPX5999D イベント割込み(優先順位高)で圧力取込み