7.3、LSM6DSL硬件功能
时间:2023-02-15 06:00:00
7.3、LSM6DSL硬件功能
文章目录
- 7.3、LSM6DSL硬件功能
-
- 7.3.1、LSM6DSL工作模式
-
- 7.3.1.1、掉电模式
- 7.3.1.2.低功耗模式
- 7.3.1.3、正常模式
- 7.3.1.4.高性能模式
- 7.3.1.5.陀螺仪睡眠模式
- 7.3.2、LSM6DSL嵌入式功能
- 7.3.3、LSM6DSL中断
- 7.3.4、LSM6DSL温度传感器
- 7.3.5、LSM6DSL FIFO
-
- 7.3.5.1、FIFO模式
-
- 7.3.5.1.1、Bypass mode
- 7.3.5.1.2、FIFO mode
- 7.3.5.1.3、Continuous mode
- 7.3.5.1.4、Continuous-to-FIFO mode
- 7.3.5.1.5、Bypass-to-continuous mode
7.3.1、LSM6DSL工作模式
LSM6DSL陀螺仪和加速度计有独立的开关和ODR.且提供了 3 可能的操作配置:
- 只有加速度计工作,陀螺仪下电
- 只有陀螺仪工作,加速度计下电
- 加速度计和陀螺仪工作独立 ODR
加速度计和陀螺仪可分别分为四种不同的功耗模式:断电、低功耗、正常和高性能模式。它们可以有不同的数字
根据任何限制。陀螺仪传感器也可以设置为睡眠模式,以降低其功耗。
7.3.1.1、掉电模式
内部几乎所有的模块都断开了,但是IIC/SPI继续工作,配置寄存器值保留,但数据寄存器值不更新,在进入脱电模式之前,可以保存在存储器中采样的最终数据.
7.3.1.2.低功耗模式
在这种模式下,低速ODR使能,可选ODR,1.6 Hz、 12.5 Hz、 26 Hz 和 52 Hz。
激活数据中断时.
7.3.1.3、正常模式
为了节能,自动打开和关闭加速度计/陀螺仪数据读取链。在陀螺仪模块中,只有驱动电路始终工作。
数据中断是激活的
7.3.1.4.高性能模式
在高性能模式下,所有加速器/陀螺仪电路始终连接并通过 ODR_XL/ODR_G 选择生成数据的数据率。
数据中断是激活的
7.3.1.5.陀螺仪睡眠模式
当陀螺仪处于睡眠模式时,陀螺仪模块的振荡驱动电路保持激活。与陀螺仪下电模式相比,从睡眠模式到低功耗/正常/高性能模式的开启时间大大降低。
如果陀螺仪不配置为下电模式,则当 CTRL4_C 寄存器的睡眠模式使(SLEEP)位被置为 1 不管选择陀螺仪 ODR 为什么它会进入睡眠模式?
7.3.2、LSM6DSL嵌入式功能
如果不在乎功耗,可以打开芯片内部的一些特殊模块(只使用加速度计),实现以下功能.
- 计步功能(步伐侦测和步数计算);
- 大型运动检测;
- 相对倾斜;
- 手腕绝对倾斜;
- 时间戳.
26.所有功能工作HZ,因此,加速度计ODR必须设定为26HZ或者更高.
这些功能在AN5050手册中有具体的使用方法(寄存器).
7.3.3、LSM6DSL中断
LSM6DSL 器件中,中断产生仅以加速度计数据为基础,因此要产生中断,加速度计传感器必须设置为活动工作模式(不能处于下电模式);陀螺仪传感器可配置为下电模式,因为它与中断产生无关。
可配置中断发生器进行检测:
- 自由落体;
- 唤醒;
- 6D/4D 方向检测;
- 单击和双击感知;
- 活动/非活动识别。
此外, LSM6DSL 高效运行 Android 具体的传感器相关功能,节能,反应速度快。以下功能仅在使用加速度计的硬件中实现:
- 大型运动检测;
- 相对倾斜;
- 手腕绝对倾斜;
- 计步功能;
- 时间戳
这些信号和FIFO可独立设置中断信号INT1和INT2中断引脚,通过特定的寄存器单独检测.
INT通过配置引脚MD1_CFG(5Eh)和INT1_CTRL(0Dh)选择,其中INT1引脚支持以下中断.
- INT1_STEP_DETECTOR: INT1 上计步器步伐检测中断
- INT1_SIGN_MOT: INT1 大幅运动中断
- INT1_FULL_FLAG: INT1 上 FIFO 全满标志中断
- INT1_FIFO_OVR: INT1 上 FIFO 溢出标志中断
- INT1_FTH: INT1 上 FIFO 阈值中断
- INT1_BOOT: INT1 上启动中断
- INT1_DRDY_G: INT1 上陀螺仪数据准备就绪
- INT1_DRDY_XL: INT1 加速度计数据准备就绪
- INT1_INACT_STATE: INT1 中断上非活动
- INT1_SINGLE_TAP: INT1 上单击中断
- INT1_WU: INT1 上唤醒中断
- INT1_FF: INT1 上自由落体中断
- INT1_DOUBLE_TAP: INT1 上双击中断
- INT1_6D: INT1 上 6D 检测中断
- INT1_TILT: INT1 上倾斜中断
- INT1_TIMER: INT1 中断上定时器
INT通过配置引脚MD2_CFG(5Fh)和INT2_CTRL(0Eh)选择,其中INT1引脚支持以下中断.
- INT2_STEP_DELTA: INT2 上计步器步数识别时间中断
- INT2_STEP_COUNT_OV: INT2 上步数计数器溢出中断
- INT2_FULL_FLAG: INT2 上 FIFO 全满标志中断
- INT2_FIFO_OVR: INT2 上 FIFO 溢出标志中断
- INT2_FTH: INT2 上 FIFO 阈值中断
- INT2_DRDY_TEMP: INT2 准备好上温度数据
- INT2_DRDY_G: INT2 上陀螺仪数据准备就绪
- INT2_DRDY_XL: INT2 加速度计数据准备就绪
- INT2_INACT_STATE: INT2 中断上非活动
- INT2_SINGLE_TAP: INT2 上单击中断
- INT2_WU: INT2 上唤醒中断
- INT2_FF: INT2 上自由落体中断
- INT2_DOUBLE_TAP: INT2 上双击中断
- INT2_6D: INT2 上 6D 检测中断
- INT2_TILT: INT2 上倾斜中断
- INT2_IRON: INT2 软铁/硬铁中断
上述中断可以同时打开。在后续使用过程中,只需读取特定的寄存器即可判断哪个中断.
同时支持所有中断信号INT1引脚发出,但默认情况下此功能已关闭。如果需要使用,则需要配置CTRL4_C(13h)中的INT2_on_INT1位即可.
其余详细信息参考每个中断AN5040.
7.3.4、LSM6DSL温度传感器
LSM6DSL 适用于环境温度测量的内部温度传感器。
若加速度计和陀螺仪传感器均处于下电模式,则温度传感器关闭。
温度传感器的最大输出数据率是 52 Hz,其价值取决于加速度计和陀螺仪传感器如何匹配:
- 如果陀螺仪处于下电模式:
- 如果加速度计 ODR 等于 12.5 Hz 低功耗模式,则温度数据速率等于 12.5 Hz;
- 如果加速度计配置为 26 Hz 低功耗模式,则温度数据速率等于 26 Hz;
- 对于所有其他的加速度计配置,温度数据速率均等于 52 Hz。
- 如果陀螺仪不是处于下电模式,则无论加速度计和陀螺仪配置是什么,温度数据速率均为 52 Hz。
7.3.5、LSM6DSL FIFO
LSM6DSL 嵌入了一个 4 kB 的先进先出缓冲器(FIFO).
FIFO内部可存储如下数据.
- 陀螺仪传感器数据;
- 加速度计传感器数据;
- 外部传感器(连接到传感器集合(sensor hub)接口)数据;
- 计步器和时间戳数据;
- 温度传感器数据
7.3.5.1、FIFO模式
FIFO有五种不同的操作模式可以选择
- Bypass mode
- FIFO mode
- Continuous mode
- Continuous-to-FIFO mode
- Bypass-to-continuous mode
7.3.5.1.1、Bypass mode
这个是最简单的,不使用FIFO,FIFO里面是空的.
备注: FIFO置于该模式的时候,缓冲区将会被清0.
7.3.5.1.2、FIFO mode
FIFO继续填直至填满.然后停止采集数据, FIFO 内容保持不变,直至选用不同模式.
7.3.5.1.3、Continuous mode
FIFO 连续填充。当缓冲器满时, FIFO 索引重新从头开始,原有数据被新数据替代。最早先的数据继续被覆盖,直至读取操作释放了 FIFO 空间。要实现空间释放速度快于新数据产生速度,主处理器读取速度很重要。要停止此配置,必须选用 Bypass 模式。
用法和软件环形缓冲区类似.
7.3.5.1.4、Continuous-to-FIFO mode
此模式是先前所述的 Continue 和 FIFO 模式的组合。在 Continue-FIFO 模式中, FIFO 缓冲器开始工作于 Continue模式,当发生事件条件时切换为 FIFO 模式。
事件条件可为以下之一:
- 双击:必须配置事件检测,并且 MD2_CFG 寄存器的 INT2_DOUBLE_TAP 位必须被置为 1;
- 倾斜:必须配置事件检测,并且 MD2_CFG 寄存器的 INT2_TILT 位必须被置为 1;
- 计步运动:必须配置事件检测,并且 INT1_CTRL 寄存器的 INT1_STEP_DETECTOR 位必须被置为 1;
- 单击:必须配置事件检测,并且 MD2_CFG 寄存器的 INT2_SINGLE_TAP 位必须被置为 1;
- 双击:必须配置事件检测,并且 MD2_CFG 寄存器的 INT2_DOUBLE_TAP 位必须被置为 1;
- 自由落体:必须配置事件检测,并且 MD2_CFG 寄存器的 INT2_FF 位必须被置为 1;
- 唤醒:必须配置事件检测,并且 MD2_CFG 寄存器的 INT2_WU 位必须被置为 1;
- 6D:必须配置事件检测,并且 MD2_CFG 寄存器的 INT2_6D 位必须被置为 1。
如图,该模式下只有在FIFO已经填满时才会停止.
7.3.5.1.5、Bypass-to-continuous mode
此模式是先前所述的 Bypass 和 Continue 模式的组合。在 Bypass-Continue 模式中, FIFO 缓冲器开始工作于
Bypass 模式,当发生事件条件时切换为 Continue 模式。
事件条件可为以下之一:
- 双击:必须配置事件检测,并且 MD2_CFG 寄存器的 INT2_DOUBLE_TAP 位必须被置为 1;
- 倾斜:必须配置事件检测,并且 MD2_CFG 寄存器的 INT2_TILT 位必须被置为 1;
- 计步运动:必须配置事件检测,并且 INT1_CTRL 寄存器的 INT1_STEP_DETECTOR 位必须被置为 1;
- 单击:必须配置事件检测,并且 MD2_CFG 寄存器的 INT2_SINGLE_TAP 位必须被置为 1;
- 双击:必须配置事件检测,并且 MD2_CFG 寄存器的 INT2_DOUBLE_TAP 位必须被置为 1;
- 自由落体:必须配置事件检测,并且 MD2_CFG 寄存器的 INT2_FF 位必须被置为 1;
- 唤醒:必须配置事件检测,并且 MD2_CFG 寄存器的 INT2_WU 位必须被置为 1;
- 6D:必须配置事件检测,并且 MD2_CFG 寄存器的 INT2_6D 位必须被置为 1。
该模式下只有中断时间内才会读取FIFO,其余时间都是bypass状态.