7.6、LSM6DSL_SENSOR_HUB模式
文章目录
- 7.6、LSM6DSL_SENSOR_HUB模式
-
- 7.6.1、简介
- 7.6.2、LSM6DSL_SENSOR_HUB模式
- 7.6.3、sensor_hub直连模式
- 7.6.4 测试结果
7.6.1、简介
硬件概述中有两种接线模式,其中第二种模式允许外部传感器连接到LSM6DSL.
7.6.2、LSM6DSL_SENSOR_HUB模式
该模式下的接线图如下所示.
在模式2(SENSOR HUB mode)最多连接四个传感器LSM6DSL器件的I2C
主接口.触发方法有两种.
-
加速度计数据就绪信号(MAX 104HZ)同步(内部触发)
-
连接到传感器的触发信号INT2,最大ODR这取决于两个连续触发信号之间可执行的读写操作数量.
我也仔细阅读了这个模型,重点关注可以配置的项目。如果要使用,可以参考AN5040文档.
-
sensor_hub该模型有一个总开关(MASTER_CONFIG寄存器)
-
LSM6DSL有一个关于从设备的内部。IIC上拉开关 (MASTER_CONFIG寄存器)
-
有两种方法可以触发设备数据(MASTER_CONFIG寄存器)
-
SLV
X
_ADD从设备中储存IIC读写操作选择地址和位置(X = 0,1,2,3) -
SLV
X
_SUBADD存储从设备(写/读)操作的寄存器地址(X = 0,1,2,3) -
SLVE
X
_CONFIG有点复杂,需要阅读原文档.而且每一个都有一点细微的差别.
7.6.3、sensor_hub直连模式
简单来说,直接连接模式是个别的sensor_hub模式是两种模式.如下所示.
我用的就是直连模式,sensor_hub模式没有使用,所以配置方法相对简单,有以下两个步骤.
-
关闭sensor_hub模式(默认关闭).
-
打开直接连接模式.
具体代码如下(添加到)lsm6dsl.c
).
int32_t LSM6DSL_Enable_Func(LSM6DSL_Object_t *pObj) {
int32_t ret = LSM6DSL_OK; /* 设定master_config的 MASTER_ON位 */ if (lsm6dsl_sh_master_set(&(pObj->Ctx), PROPERTY_DISABLE) != LSM6DSL_OK) {
return LSM6DSL_ERROR; } /* 设定master_config的 PASS_THROUGH_MODE */ if(lsm6dsl_sh_pass_through_set(&(pObj->Ctx), PROPERTY_ENABLE) != LSM6DSL_OK) {
return LSM6DSL_ERROR; } return ret; }
如果想要sensor_hub如果同时使用模式和直接连接模式,配置可能会比较麻烦,可能有以下三种情况.
sensor_hub内部触发模式,不使用直接连接功能,INT2引脚无限制.
sensor_hub内部触发模式,但使用直接连接功能时,INT引脚必须接地.不能使用外部触发信号INT2引脚.
sensor_hub外部触发模式,不使用直接连接功能,INT准备就绪引脚必须连接到外部传感器的数据.必须执行以下操作以避免和避免INT2的> 冲突.如下所示.
比较复杂,我只挂载了一个传感器使用的直连模式.所以没有尝试.两种模式同时初始化的方法如下所示.
更具体的可以参考官方AN5040文档.里面有详细的介绍,但是看的时候需要多读几遍。翻译不是很好,有点难理解.
7.6.4 测试结果
测试结果如下所示,只使用直接连接模式.