资讯详情

7.6、LSM6DSL_SENSOR_HUB模式

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模式

该模式下的接线图如下所示.

20210128235446

在模式2(SENSOR HUB mode)最多连接四个传感器LSM6DSL器件的I2C主接口.触发方法有两种.

  • 加速度计数据就绪信号(MAX 104HZ)同步(内部触发)

  • 连接到传感器的触发信号INT2,最大ODR这取决于两个连续触发信号之间可执行的读写操作数量.

我也仔细阅读了这个模型,重点关注可以配置的项目。如果要使用,可以参考AN5040文档.

  • sensor_hub该模型有一个总开关(MASTER_CONFIG寄存器)

  • LSM6DSL有一个关于从设备的内部。IIC上拉开关 (MASTER_CONFIG寄存器)

  • 有两种方法可以触发设备数据(MASTER_CONFIG寄存器)

  • SLVX_ADD从设备中储存IIC读写操作选择地址和位置(X = 0,1,2,3)

  • SLVX_SUBADD存储从设备(写/读)操作的寄存器地址(X = 0,1,2,3)

  • SLVEX_CONFIG有点复杂,需要阅读原文档.而且每一个都有一点细微的差别.

7.6.3、sensor_hub直连模式

简单来说,直接连接模式是个别的sensor_hub模式是两种模式.如下所示.

我用的就是直连模式,sensor_hub模式没有使用,所以配置方法相对简单,有以下两个步骤.

  1. 关闭sensor_hub模式(默认关闭).

  2. 打开直接连接模式.

具体代码如下(添加到)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如果同时使用模式和直接连接模式,配置可能会比较麻烦,可能有以下三种情况.

  1. sensor_hub内部触发模式,不使用直接连接功能,INT2引脚无限制.

  2. sensor_hub内部触发模式,但使用直接连接功能时,INT引脚必须接地.不能使用外部触发信号INT2引脚.

  3. sensor_hub外部触发模式,不使用直接连接功能,INT准备就绪引脚必须连接到外部传感器的数据.必须执行以下操作以避免和避免INT2的> 冲突.如下所示.

比较复杂,我只挂载了一个传感器使用的直连模式.所以没有尝试.两种模式同时初始化的方法如下所示.

更具体的可以参考官方AN5040文档.里面有详细的介绍,但是看的时候需要多读几遍。翻译不是很好,有点难理解.

7.6.4 测试结果

测试结果如下所示,只使用直接连接模式.

标签: dsl传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台