干货奉上 | lis2dw12 加速度传感器—寄存器篇

Posted 三明治开发社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了干货奉上 | lis2dw12 加速度传感器—寄存器篇相关的知识,希望对你有一定的参考价值。

工作模式

  • 工作模式主要分为6种:4种低功耗模式,1种高性能模式和单数据转换模式。其中低功耗模式和高性能模式区别于但数据转换模式,都属于连续转换模式。转换输出数据速率可通过 CTRL1(20h)中的 ODR[3:0]位进行选择。
    在这里插入图片描述
  • 工作模式主要是通过CTRL1(20h)寄存器控制,上电CTRL1寄存器数值为0x00,默认芯片处于关闭状态,没有测量数据更新。
    在这里插入图片描述
  • 各工作模式下的功耗
    在这里插入图片描述
  • 单数据转换模式:仅适用于低功耗模式。在此配置中,设备等待触发信号,生成新数据,之后设备立即进入掉电状态。
    使用INT2引脚作为外部触发器进行单数据转换。
    在这里插入图片描述
    设置控制寄存器CTRL3(22h)中的 SLP_MODE_SEL =‘0’,使INT2 引脚的上升沿作为外部触发器。此时,用户可以使用STATUS 寄存器(27h)的 DRDY 位检测转换是否结束。其中触发信号高电平的最小持续时间为 20 ns。使用单个数据转换模式的最大数据速率为 200 Hz,转换时间T_on取决于所选的低功耗模式: 1.20 ms for Low-Power Mode 1; 1.70 ms for Low-Power Mode 2; 2.30 ms for Low-Power Mode 3; 3.55 ms for Low-Power Mode 4。
    在这里插入图片描述
    可通过寄存器CTRL4_INT1_PAD_CTRL (23h)中的 INT1_DRDY 位置为 1,也可以将 DRDY 信号其发送至 INT1 引脚。可以通过INT1引脚检测转换是否结束。
    在这里插入图片描述

加速度计带宽

加速度计采样链 由几个级联模块表示:
在这里插入图片描述

  • 仅 LPF1(绿色路径):为了选择此路径,设置寄存器CTRL6 (25h) 中的BW_FILT [1:0] = 00。
  • LPF1 + LPF2(紫色路径):为了选择此路径,设置 BW_FILT[1:0]的值不同于 00。
  • LPF1 + HP(蓝色路径):这些输出始终可用于 BW_FILT [1:0] = 00 的每个值。
    在这里插入图片描述

读取输出数据

  • 当器件上电时,器件会自动从嵌入的内存中加载校准系数到内部寄存器中。启动时间大约 20 毫秒左右,之后加速度计会自动进入掉电。
  • 根据状态寄存器DRDY状态,以轮询方式检查数据更新
    该器件提供了一个 STATUS (27h) 寄存器,可用于轮询检查新的一组数据什么时候可以用。当加速度计输出中有一组新的数据可用时,DRDY 位被置为 1。默认条件下:DRDY是锁存模式,只有当其中一个通道的较高部分已被读取(OUT_X_H、OUT_Y_H、OUT_Z_H)时,信号DRDY将复位。
    如果DRDY要改成脉冲模式,将CTRL7 (3Fh) 寄存器中的DRDY_PULSED 位置 1,且脉冲持续时间约为 75 μs。
    应当按照如下步骤进行读取操作:
  • 读 STATUS
  • 如果 DRDY = 0,则进入 1
  • 读 OUTX_L
  • 读 OUTX_H
  • 读 OUTY_L
  • 读 OUTY_H
  • 读 OUTZ_L
  • 读 OUTZ_H
  • 数据处理
  • 使用INT1或INT2引脚,以轮询或中断的方式检查数据更新
    当加速度计输出中有一组新的数据可用时,DRDY 位被置为 1。通过将 CTRL4_INT1_PAD_CTRL 寄存器的 INT1_DRDY 位置为 1,可将该信号驱动至 INT1 引脚,也可以通过将 CTRL5_INT2_PAD_CTRL 寄存器的 INT2_DRDY 位置为 1,将其驱动至 INT2 引脚。
    通过寄存器CTRL3 (22h)的H_LACTIVE位,设置INT1和INT2引脚空闲时电平和触发后电平。
    通过寄存器CTRL3 (22h)的PP_OD位,设置INT1和INT2引脚是推挽还是开漏。
    在这里插入图片描述
  • 使用块数据更新功能
    如果读取加速度计数据特别慢,并且不能与 STATUS 寄存器中的 DRDY 事件位或驱动到 INT1/INT2 引脚的 DRDY 信号同步,那么强烈建议将 CTRL2(21h)寄存器中的 BDU(块数据更新)位置为 1。当发起了对给定寄存器对(即OUTX_H 和 OUTX_L、OUTY_H 和 OUTY_L、OUTZ_H 和 OUTZ_L)的读取时,读取数据的 MSB 和 LSB 部分之前,都会禁止刷新该寄存器对。

输出数据

测得的3轴加速度数据都是存放在 OUTX_H、OUTX_L、OUTY_H、OUTY_L、OUTZ_H 和 OUTZ_L 寄存器中。

  • 因为这些寄存器地址是连续的,通过I2C读取时,输入OUT_X_L寄存器的地址,设置读取6个字节,可将OUTX_H、OUTX_L、OUTY_H、OUTY_L、OUTZ_H 和 OUTZ_L 寄存器的数据全部读出。
  • 加速度数据为二进制补码格式的 16 位数字,左对齐。根据所选的工作模式,这些值(LSB)具有不同的分辨率。
    在这里插入图片描述
    其中满量程设置通过寄存器CTRL6 (25h)的FS[1:0]配置
    在这里插入图片描述

以下举个列子
OUTX=0xFD60;OUTY=0x0078;OUTZ=0x42FC
配置状态:14位分辨率,满量程为±2g,转换后加速度为:
X轴:-672/40.244=-41mg
Y轴:120/4
0.244=7mg
Z轴:17148/4*0.244=1046mg

温度传感器

LIS2DW12 具有内部温度传感器,适用于环境温度测量。

  • 当一组新数据可用时,STATUS_DUP(37h)中的 DRDY_T 位设为 1,并在读取其中一个温度数据输出(OUT_T_H 或 OUT_T)时复位。DRDY_T 位可以通过 CTRL5_INT2_PAD_CTRL 寄存器的位 INT2_DRDY_T映射到INT2引脚。
  • 温度数据表示为二进制补码格式的 12 位/8位,在 OUT_T_L 和 OUT_T_H 寄存器中左对齐。
  • OUT_T寄存器的数值零对应室温25℃,公式:
    温度数值=25+OUT_T(℃)
    在这里插入图片描述

其他功能

加速度传感器功能丰富:6D/4D 定向检测,单击和双击识别,先进先出(FIFO)缓冲区的应用,待后续有机会应用学习后,再分享。

……好记性不如烂笔头……

以上是关于干货奉上 | lis2dw12 加速度传感器—寄存器篇的主要内容,如果未能解决你的问题,请参考以下文章

Arduino 血氧心率模块传感器数据采集

博世传感器调试笔记----加速度传感器BMA253

使用STM32F4采集数据的新方法

MPU-6050:从 FIFO 寄存器正确读取数据

nrf52832用I2C和SPI两种方式驱动LIS2DS12

C#编写Modbus协议加速度传感器上位机