干货奉上 | 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/40.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 加速度传感器—寄存器篇的主要内容,如果未能解决你的问题,请参考以下文章