ADXL345 的概述以及 ADXL345 用OSS-ECAL的提供情况。ADXL345 是一款由 Analog Devices 生产的工业用三轴加速度传感器(±2 g、±4 g、±8 g、±16 g)。
MCU interface : I2C, SPI
注意: 本资源的原始语言为英语。 翻译仅为方便起见提供概要,可能使用了机器翻译,我们对翻译的准确性和合理性不作任何保证。 此外,在进行实际设计等操作前,请务必参考最新版本的Datasheet。
ADXL345
概述
ADXL345 是一款小型、超薄、超低功耗的 3 轴加速度计,具有高分辨率(13 位)测量功能,测量范围可达 ±16 g。数字输出数据以 16 位补码格式呈现,可通过 SPI(3 线或 4 线)或 I2C 数字接口进行访问。
ADXL345 非常适合移动设备应用。它可测量倾斜检测应用中的静态重力加速度,以及由运动或冲击引起的动态加速度。其高分辨率(3.9 mg/LSB)可实现小于 1.0° 的倾斜变化测量。
提供了几种特殊的传感功能。活动和非活动传感通过将任何轴上的加速度与用户设置的阈值进行比较,来检测运动的存在或缺失。轻触传感可检测任何方向上的单次和双次轻触。自由落体检测功能可检测设备是否处于下落状态。这些功能可分别映射至两个中断输出引脚中的任意一个。集成式内存管理系统配备32级先进先出(FIFO)缓冲区,可用于存储数据,从而减少主处理器活动并降低整体系统功耗。
低功耗模式支持基于运动的智能电源管理,通过阈值检测和主动加速度测量实现极低功耗。
ADXL345 采用小型、薄型、尺寸为 3 mm × 5 mm × 1 mm、14 引脚的塑料封装。
特点
- 低功耗:VS = 2.5 V(典型值)时,测量模式下低至23 μA,待机模式下低至0.1 μA
- 功耗随带宽自动按比例变化
- 用户可选的分辨率
– 10位固定分辨率
– 全分辨率,分辨率随g范围提高而提高,±16 g时高达13位(在所有g范围内保持4 mg/LSB的比例系数) - 嵌入式存储器管理系统采用FIFO技术,可充分降低主机处理器负荷
- 单振/双振检测
- 活动/非活动监控
- 自由落体检测
- 电源电压范围:2.0 V至3.6 V
- I/O电压范围:1.7 V至VS
- SPI(3线式和4线式)和I2C数字接口
- 灵活的中断模式,可映射到任一中断引脚
- 通过串行命令可选测量范围
- 通过串行命令可选带宽
- 宽温度范围(-40°C至+85°C)
- 抗冲击能力:10,000 g
- 无铅/符合RoHS标准
- 小而薄:3 mm × 5 mm × 1 mm LGA封装
用途
- Handsets
- 医疗器械
- ADXL345-EP 支持国防和航空航天应用(AQEC)。
OSS-ECAL规格
API 函数
OSS-ECAL API 函数基本上被假定为周期性Thread (TASK) 的函数调用。
以下API函数支持I2C协议;若需SPI协议,请联系Analog Devices或您的电子元器件贸易公司以获取相关支持。
etSTS oADXL345_INIT ( void )
oADXL345_INIT 函数用于执行 ADXL345 的以下初始设置并切换至测量模式。请在 user_setting.h 文件中按照下表设置寄存器的初始值。
– 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 Name | Register | Temporary initial value |
---|---|---|
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 Select from the following values. 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 Select from the following values. iMEASURE, iSLEEP, iAUTO_SLEEP, iSTANDBY | iMEASURE |
WAKEUP_FREQ | POWER_CTL Select from the following values. 1 = 1 Hz, 2 = 2 Hz, 4 = 4 Hz, 8 = 8 Hz | 8 |
返回值 | etSTS | OSS-ECAL status code | |
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 函数是一个 API 函数,用于设置 ADXL345 加速度计检测活动状态的阈值和动作。
返回值 | etSTS | OSS-ECAL status code | |
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 | ||
参数 OUT | float32 thresh_act_g | Register THRESH_ACT set value | [62.5 mg/LSB] |
uint8 act_ctl | Register ACT_INACT_CTL set value | 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 函数是一个 API 函数,用于设置 ADXL345 加速度计检测无活动状态的阈值、时间和操作。
返回值 | etSTS | OSS-ECAL status code | |
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 set value | [62.5 mg/LSB] |
float32 time_inact_s | Register TIME_INACT set value | [1 sec/LSB] | |
uint8 inact_ctl | Register ACT_INACT_CTL set value | 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 函数是一个 API 函数,用于设置 ADXL345 的单次触发检测功能。
返回值 | etSTS | OSS-ECAL status code | |
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 set value | [62.5 mg/LSB] |
float32 duration_ms | Register DUR set value | [625 us/LSB] | |
uint8 axis | Register TAP_AXES set value | 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 函数是一个 API 函数,用于设置 ADXL345 的双击检测功能。
返回值 | etSTS | OSS-ECAL status code | |
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 set value | [62.5 mg/LSB] |
float32 duration_ms | Register DUR set value | [625 us/LSB] | |
float32 latent_ms | Register Latent set value | [1.25 ms/LSB] | |
float32 window_ms | Register Window set value | [1.25 ms/LSB] | |
uint8 axis | Register TAP_AXES set value | 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 函数是一个 API 函数,用于设置 ADXL345 的自由落体检测功能。
返回值 | etSTS | OSS-ECAL status code | |
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 set value | [62.5 mg/LSB] |
float32 time_ms | Register TIME_FF set value | [5 ms/LSB] |
etSTS oADXL345_WRITE_OFFSET( float32 offset_x_g, float32 offset_y_g, float32 offset_z_g )
oADXL345_WRITE_OFFSET 函数是一个 API 函数,用于设置 ADXL345 加速度计的 X 轴、Y 轴和 Z 轴的偏移量。
返回值 | etSTS | OSS-ECAL status code | |
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 | ||
参数 OUT | float32 offset_x_g | Register OFSX set value | [15.6 mg/LSB] |
float32 offset_y_g | Register OFSY set value | [15.6 mg/LSB] | |
float32 offset_z_g | Register OFSZ set value | [15.6 mg/LSB] |
etSTS oADXL345_WRITE_INT( uint8 int_enable_mask, uint8 int_map )
oADXL345_WRITE_INT 函数是一个用于设置 ADXL345 中断的 API 函数。
返回值 | etSTS | OSS-ECAL status code | |
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 set value | 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 set value | 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 status code | |
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 除了iFIFO_BYPASS、iFIFO_FIFO、 iFIFO_STREAM或iFIFO_TRIGGER之外的FIFO值。 | ||
参数 IN | uint8 fifo | Register FIFO_CTL set value | bit7-bit6 FIFO_MODE 从以下选项中选择。 iFIFO_BYPASS、iFIFO_FIFO、 iFIFO_STREAM、iFIFO_TRIGGER |
uint8 samples | Register FIFO_CTL set value | bit4-bit0 Samples 1 to 31 | |
uint8 int_map | Register INT_MAP set value | 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 函数是一个 API 函数,用于在 ADXL345 的测量模式、睡眠模式、自动睡眠模式和待机模式之间切换。
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_I2C_OBJECT | I2C 对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL | ||
eSTS_ERR_HAL_I2C | HAL I2C 错误 | ||
eSTS_ERR_PARAMETER | 模式值不为iMEASURE、iSLEEP、 iAUTO_SLEEP或iSTANDBY。 唤醒值不是1、2、4或8。 | ||
参数 IN | uint8 mode | Register POWER_CTL set value | bit4-bit2 Power mode 从以下选项中选择。 iAUTO_SLEEP, iMEASURE, iSLEEP, iSTANDBY |
uint8 wakeup | Register POWER_CTL set value | bit1-bit0 Wakeup 从以下选项中选择。 1, 2, 4, 8 |
etSTS oADXL345_READ_REG( uint8 adr, uint8* val )
oADXL345_READ_REG 函数是一个 API 函数,用于通过指定 ADXL345 寄存器地址读取寄存器值,并将读取的值存储在 val 中。
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_I2C_OBJECT | I2C 对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL | ||
eSTS_ERR_HAL_I2C | HAL I2C 错误 | ||
参数 IN | uint8 adr | Register address to be read | |
参数 OUT | uint8* val | 将读取的寄存器值保存到变量 val 中。 |
etSTS oADXL345_READ_ACC( stACC* axis )
oADXL345_READ_ACC 函数首先读取 DATA_FORMAT 寄存器的值,然后从 DATAX0:DATAX1、DATAY0:DATAY1 和 DATAZ0:DATAZ1 寄存器中读取值。根据 DATA_FORMAT 寄存器中的范围设置,它将 X 轴值存储在 axis.acc_x 中,Y 轴值存储在 axis.acc_y 中,Z 轴值存储在 axis.acc_z 中。
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_I2C_OBJECT | I2C 对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL | ||
eSTS_ERR_HAL_I2C | HAL I2C 错误 | ||
参数 OUT | stACC* axis | DATAX0:DATAX1 is converted by Range and saved in axis.acc_x DATAY0:DATAY1 is converted by Range and saved in axis.acc_y DATAZ0:DATAZ1 is converted by Range and saved in axis.acc_z | [mg] |
etSTS oADXL345_READ_ACC_FIFO( stACC* axis )
oADXL345_READ_ACC_FIFO 函数首先读取 DATA_FORMAT 寄存器的值,然后根据 FIFO 设置从 DATAX0:DATAX1、DATAY0:DATAY1 和 DATAZ0:DATAZ1 寄存器中读取值。随后,它根据 DATA_FORMAT 寄存器中的范围设置,将 X 轴值存储到 axis.acc_x,Y 轴值存储到 axis.acc_y,Z 轴值存储到 axis.acc_z。
Return value | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_I2C_OBJECT | I2C 对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL | ||
eSTS_ERR_HAL_I2C | HAL I2C 错误 | ||
eSTS_ERR_DATA_STALE | 如果 FIFO_STATUS 条目数 > 32。 | ||
Parameter OUT | stACC* axis | DATAX0:DATAX1 is converted by Range and saved in axis.acc_x DATAY0:DATAY1 is converted by Range and saved in axis.acc_y DATAZ0:DATAZ1 is converted by Range and saved in axis.acc_z | [mg] |
etSTS oADXL345_SELF_TEST_MODE( uint8 sw )
oADXL345_SELF_TEST_MODE 函数是一个 API 函数,用于启用或禁用 ADXL345 的自检模式。
Return value | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_I2C_OBJECT | I2C 对象选择错误 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL | ||
eSTS_ERR_HAL_I2C | HAL I2C 错误 | ||
Parameter IN | uint8 sw | Set value of SELF_TEST bit in Register DATA_FORMAT | sw = iON: Enable self-test mode sw = iOFF: Disable self-test mode |
Sample application
OSS-ECAL 在示例文件夹中包含了示例应用程序。以下是对该应用程序的概述。在将 OSS-ECAL 集成到您的产品程序时,请将其作为参考材料使用。

State | vgADXL345_COMMAND | state transition condition | Process Overview | API Function |
---|---|---|---|---|
Initialize | iADXL345_INITIALIZE | 1. First time | Initial Settings for ADXL345 | oADXL345_INIT |
Measure | iADXL345_MEASUREMENT | 1. Initialize completed 2. vgADXL345_COMMAND=iADXL345_MEASUREMENT | -axis acceleration measurement | oADXL345_READ_REG |
Self-test | iADXL345_SELF_TEST | 1. vgADXL345_COMMAND=iADXL345_SELF_TEST | Self-Test | oADXL345_SELF_TEST_MODE |
Calibration | iADXL345_CALIBRATION | 1. vgADXL345_COMMAND=iADXL345_CALIBRATION | 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 | Auto Sleep | – |
Error | iADXL345_ERROR | 1. vgADXL345_COMMAND=iADXL345_ERROR | Error Handling* | – |
HAL 支持列表
OSS-ECAL 的 HAL 支持如下。 请注意,即使使用相同的 HAL,不同的版本、MCU 和开发环境也可能无法协同工作。 该列表正在按顺序扩展。
Manufacturer | SDK/IDE Tool | HAL Name | 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 | – |
Renesas | Synergy Software Package | HAL | 2.6.0 | SSP | X |
STMicroelectronics | STM32Cube | STM32CubeF4 | V1.28.1 | STM32F4 | X |
开发环境
OSS-ECAL 开发过程中的 MCU 和开发环境如下。
HALNAME | Manufacturer | Board | 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 |
SSP | Renesas | S7G2 SK | R7FS7G27H3A01CFC | e² studio for Renesas Synergy |
STM32F4 | STMicroelectronics | STM32 Nucleo-64 boards | STM32F401RETx | STM32CubeIDE |
文件结构
Folder* | File | Summary |
---|---|---|
ADXL345_HALNAME_010000/sample | sample.c (.cpp) | Sample application program |
sample.h | Sample application header | |
ADXL345_HALNAME_010000 | oADXL345.c (.cpp) | OSS-ECAL program for ADXL345 |
oADXL345.h | OSS-ECAL header for ADXL345 | |
oss_ecal.h | OSS-ECAL common header | |
ADXL345_ARDUINO.ino | Sample application programs for Arduino | |
user_setting.c (.cpp) | User configured constants and tables | |
user_setting.h | User configuration Header | |
readme.md | Readme | |
OSS-ECAL Terms of Use.txt | OSS-ECAL Terms of Use |
* 有关 HALNAME,请参阅 HAL 支持。
OSS-ECAL 下载
请从 OSS-ECAL 英文网站下载 OSS-ECAL。下载时,请先登录 OSS-ECAL 英文网站,然后再进行操作。
内置方法
如何在用户程序中整合多个 OSS-ECAL(相同的 MCU 功能)
如何在用户程序中整合多个 OSS-ECAL(不同 MCU 功能)
注意
OSS-ECAL 示例版本不适用于线程(任务)或不同优先级的中断。 请不要像下面的示例那样使用它。
例如 如果每个传感器被分配到相同的 ADC 组,而 OSS-ECAL API 在具有不同优先级的进程中执行,则可能无法获得正确的值。
ADC Gr0 Ch0 Temperature sensor AD22100A 每隔 100 毫秒采集一次温度(低优先级)
ADC Gr0 Ch1 Pressure sensor MPX5999D 事件中断时采集压力(高优先级)