跳转至

ADXL367 加速度计简介

简介

ADXL367 是 Analog Devices 推出的超低功耗三轴数字 MEMS 加速度计,面向电池供电、常开监听与事件唤醒场景。器件在维持较低系统功耗的同时,提供稳定的三轴加速度测量能力,适合运动检测、姿态识别、活动监测以及边缘触发类物联网应用。

相较于高精度高功耗加速度计,ADXL367 更强调超低功耗与长期在线能力,常用于“低功耗前端筛查 + 事件触发后深度采集”的系统架构。

主要特性(摘要)

  • 超低功耗:典型 0.89 µA@100 Hz;运动唤醒模式约 180 nA;待机约 40 nA
  • 可选量程:±2 g、±4 g、±8 g
  • 数字接口:SPI(4 线)与 I2C
  • 分辨率:14-bit(兼容 12-bit / 8-bit 输出格式)
  • 低噪声:典型噪声密度低至约 170 µg/√Hz
  • ODR 可配置:常用到 400 Hz
  • 内置 FIFO:512 samples
  • 集成温度传感器与活动/静止检测能力
  • 宽电压供电:1.1 V 至 3.6 V
  • 适合常开监测、事件触发与电池供电设备

典型应用

  • 常开运动监听与中断唤醒
  • 可穿戴设备与便携式终端
  • 电池供电物联网节点
  • 姿态检测、跌落/震动事件检测
  • 低功耗边缘感知与智能触发

技术规格(简表)

参数 规格 / 说明
测量范围 ±2 g、±4 g、±8 g
分辨率 14-bit(兼容 12-bit / 8-bit 输出)
噪声密度 约 170 µg/√Hz(典型)
接口 SPI(4 线)、I2C
FIFO 深度 512 samples
工作电压 1.1 V 至 3.6 V
功耗(典型) 0.89 µA@100 Hz;180 nA(运动唤醒);40 nA(待机)

评估板

接线

如图所示,本项目中 ADXL367 采用 I2C 接线,从而避免与 ADXL355 共用 SPI 接口。

接口表如下:

ADXL367 评估板引脚 对应 MCU 引脚 说明
VS 3.3 V 电源正极
VIO 3.3 V 电源正极
T2 悬空 不连接
INT2 GPIO 18 中断输出
INT1 GPIO 10 中断输出
CS GPIO 9 I2C 模式下即 SCL
MISO GND I2C 模式下该引脚接地
MOSI GPIO 21 I2C 模式下即 SDA
SCLK GND I2C 模式下该引脚接地
GND GND 电源地

官方驱动参考

本工程中的驱动(node_acc_adxl367

本节定位

仓库中的 ESP-IDF 组件把 ADXL367 抽象成节点侧「加速度服务」:单一 I2C 从机、一个 node_acc_adxl367_dev_t 状态对象,以及覆盖上电、配置、原始读取、FIFO、中断与片内运动检测的一套稳定 API,供应用层或随附测试程序调用。

在软件中的位置

仅使用 I2C;驱动不直接调用 ESP-IDF 的 I2C 底层接口,统一经 driver/node_i2c。寄存器读写顺序、14 位数据打包与时序相关行为与 driver/ref-adxl367 下 Analog 参考实现(与 adxl367.c 同源思路)对齐。

flowchart TB
    subgraph application_layer [应用层]
        APP[业务固件]
        TST[node_acc_adxl367_test.c]
    end
    subgraph driver_layer [本组件]
        API[node_acc_adxl367.c / .h]
    end
    subgraph bus_layer [总线抽象]
        I2C[node_i2c]
    end
    IC[(ADXL367)]
    APP --> API
    TST --> API
    API --> I2C
    I2C --> IC

node_acc_adxl367_dev_t 除保存已打开的 I2C 句柄外,还缓存量程、ODR、功耗模式、测量模式(加速度/温度组合)与 FIFO 模式,避免调用方与内部状态不一致。

仓库内文件分工

路径 作用
CODE/AIoTNode/driver/node_acc_adxl367/include/node_acc_adxl367.h 对外 API:枚举、设备结构体、函数声明。
CODE/AIoTNode/driver/node_acc_adxl367/node_acc_adxl367.c 寄存器访问、初始化/探测、XYZ 与温度、FIFO 排空、INT 映射、活动/静止配置。
CODE/AIoTNode/driver/node_acc_adxl367/node_acc_adxl367_test.c 分阶段测试与默认演示入口;在相关阶段把 FIFO 水印接到 GPIO 中断。
CODE/AIoTNode/driver/node_i2c 本驱动共用的 I2C 封装。
CODE/AIoTNode/driver/ref-adxl367 参考行为与系数(如温度换算)。

功能一览(按能力域)

能力域 API 覆盖内容
生命周期 软复位;读取 DEVID / PARTID / REVID 做探测;初始化默认 ±2 g、100 Hz、测量模式、仅加速度测量。
量程与速率 FILTER_CTL:±2 g / ±4 g / ±8 g;ODR 12.5 Hz~400 Hz。
功耗 待机与测量(POWER_CTL)。
测量数据路径 通过 TEMP_CTL / ADC_CTL 选择仅加速度、仅温度或二者;DATA_RDY 后读原始 XYZ;温度原始值与摄氏度。
状态寄存器 STATUS:数据就绪、FIFO 相关标志、ACT/INACT/AWAKE 等。
FIFO 模式(最旧保留、流、触发)、格式(含带通道 ID 的 XYZ 等)、水印样本集数、条目计数、解析后的 XYZ 排空。
中断 将事件路由到 INT1 或 INT2:数据就绪、FIFO 水印/就绪/溢出、活动/静止、唤醒等(按 INTMAP 位定义)。
片内运动检测 活动/静止阈值与持续时间(绝对或相对基准)、轴屏蔽、LINKLOOP、关闭。

测试阶段(集成前已覆盖的行为)

测试源码按阶段划分,便于你对照应用设计选择已验证能力。

阶段 内容
1 轮询读取原始 XYZ。
2 测量模式切换;仅温度模式下拒绝读 XYZ(预期错误路径)。
3 FIFO 流模式、水印、轮询排空 XYZ。
4 INT1 与 GPIO 中断:由 FIFO 水印驱动。
5 INT2:联动活动与静止(片内检测)。
6 默认演示:用相邻采样在软件侧区分动静(与硬件 ACT 不是同一路径)。

中断所用 GPIO 宏与板级接线以测试文件为准,需与上文「接线」表一致。

与结构健康监测(SHM)的对应关系

结构监测常把「长期低占空比观测」与「激励或异常怀疑时短时提高有效采样率」分开。本驱动暴露的硬件能力与此分层一致。

本栈中的机制 典型 SHM 用途
待机 / 较低 ODR 长期或定时巡检,降低能耗。
硬件活动/静止 超过振动门限时唤醒或打标签(冲击、松动、车流等激励)。
FIFO + 水印 + 中断 触发后连续抓取一段样本,减少空转等待 DATA_RDY(模态快照、事件后记录)。
三轴、ODR 至 400 Hz 面向多数土木结构感兴趣的频段,供 RMS、频带能量或谱分析。
片内温度 解释长期基线漂移与环境变化。

节点侧建议的数据流(概念示意,非单一函数调用链):

flowchart LR
    A[配置 ODR/量程/FIFO 或 ACT] --> B{定时或事件}
    B --> C[读 STATUS 或排空 FIFO]
    C --> D[特征提取<br/>RMS、频带、谱等]
    D --> E[遥测或本地告警]

说明:驱动不包含损伤模型或识别算法;它提供对 ADXL367 的可预期访问(门限关注、缓冲窗、温度上下文),更高层 SHM 逻辑留在应用或网关上实现。