LSM6DS3,SO, SPI

一、

LSM6DS3是ST的一款6轴力学传感器,3轴加速度+3轴陀螺仪

特别注意,后缀不一样,功能有很大不一样,有的有OIS功能,有的没有

LSB的意思是最小有效位,为数字输出方式,一般我们可以用mdps/LSB来表示灵敏度。8.75 mdps/LSB,表示一个bit为8.75mdps。

dps :Degree Per Second的缩写。 °/S的意思。就是一种角速度的单位

在CS(pin12)引脚为高时启用I2C接口
在CS引脚为低时启用SPI接口
上电CS默认为高电平

(LSM6DS3_WHO_AM_I==0x0F),ID寄存器

LSM6DS3 ------- id=0x69, 把CS接地是不行的,需要读写前才拉低。
LSM6DS3TR-C ------- id=0x6A, 主SPI原厂FAE说有BUG,读取id不稳定,读的时候MOSI必须是0x00
LSM6DSO ------- id=-0x6C----使用主SPI时,SDX,SCX需要下拉,不然读ID不正确,没发现其它问题。
在这里插入图片描述

使用辅助SPI2时:
1、3线SPI,读的时候,MOSI也需要是0x00, 而且发现需要连续读才行,中间加入延时或其它就不行。
2、4线SPI,读的时候,MOSI也需要是0x00。不用连续读也可以。

在这里插入图片描述

SPI, 时钟下降沿时,MOSI,MISO上的数据更新,上升沿时被芯片采样。第一个下降沿和最后一个上升沿也算,不像I2C有停止位。 空闲时,时钟是高电平
在这里插入图片描述
第1BIT是区分读写标志

二、

如果使用I2C,从机地址可设置2个,根据1脚电平可设置为0xD4 /0xD6
在这里插入图片描述

把IF_INC设置成1,地址会自动加1(默认就是1),可以连续读取多个字节
在这里插入图片描述


三、

1、使用专用连接模式,可以实现传感器集合功能,IC的PIN2,3作为I2C主机连接其它传感器

在这里插入图片描述
FUNC_CFG_EN置1时,可访问地址为2-32H 寄存器,对这些寄存器的修改必须在GRYO和ACC处理掉电模式时进行。

2、加速度和陀螺仪是同步的,两个的数据率彼此为整数倍。陀螺仪的数据准备好信号DRDY_G始终跟随在加速度计数据准备好信号DRDY_XL后面,所以可以简单利用DRDY_G判断两个数据都准备好了。

1

3、可以利用 CTRL1_XL 寄存器的输出数据率 ( ODR_XL)位和CTRL6_C 寄存器的高性能禁止 ( XL_HM_MODE)位,来选择功耗模式和加速度计传感器的输出数据率

在这里插入图片描述
如果 CTRL4_C 寄存器中的 XL_BW_SCAL_ODR 位被置为 1,则此模拟滤波器的带宽可通
过设置 CTRL1_XL 寄存器的 BW_XL 位来确定,如果为0,则由速率决定。
在这里插入图片描述

4、陀螺仪设置

在这里插入图片描述
在这里插入图片描述
高通滤波器是为了滤去 DC分量

5、低功耗模式只有3种速率 12.5 Hz、 26 Hz 和 52 Hz

当只有加速度计且为低功耗模式时(陀螺仪处于掉电),CTRL10_C 寄存器的 FUNC_EN 位必须设置为 1。

6、睡眠模式

在这里插入图片描述

7、改变速率或模式时需要复位链路

8、加速度计的高通和低通数字滤波器的使能信号为 TAP_CFG 寄存器 SLOPE_FDS 位和 CTRL10_C寄存器 FUNC_EN 位的逻辑 “ 或 ”

CTRL8_XL 的位 LPF2_XL_EN、 HP_SLOPE_XL_EN 和 HPCF_XL [1:0] 用来选择应用于加
速度计输出数据和 FIFO 数据上的滤波器

9、陀螺仪滤波器

10、读取加速度数据

通过CTRL1_XL 选择一种工作模式,并通过CTRL9_XL使能至少一个轴。
在这里插入图片描述
在这里插入图片描述


通过设置INT1_CTRL的最后2位,当数据OK时,INT1引脚输出信号。也可以通过查询STATUS_REG看数据是否准备好。
在这里插入图片描述

11、读取陀螺仪数据

在这里插入图片描述
在这里插入图片描述

12、可以高低字节交换以兼容大小端模式

在这里插入图片描述

13、方向

orientation = Lsm6d3s_ReadByte(D6D_SRC);
printf(“orientation=%x\r\n”,orientation);
根据测试,发现不同的6个面会在D6D_SRC寄存器读取到不同的6个值。这样,就可以用来判断方向了。

  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
您好!对于LSM6DS3SPI驱动,您可以按照以下步骤进行操作: 1. 确保您的硬件连接正确:将LSM6DS3模块与SPI总线连接,确保供电和地线连接正确,并根据硬件规格将SPI总线连接到您的主控制器。 2. 在您的主控制器上启用SPI接口:这可能涉及到设置GPIO引脚以及配置SPI控制器等步骤。具体步骤可能因您所使用的主控制器而有所不同。您可以参考主控制器的文档或相关教程来进行设置。 3. 下载并安装LSM6DS3SPI驱动程序:您可以在LSM6DS3的制造商网站或其他资源库中找到相应的驱动程序。一般情况下,驱动程序会以C语言库的形式提供。请确保使用与您的主控制器兼容的库。 4. 配置驱动程序:在将驱动程序添加到您的项目中时,您可能需要根据您的需求进行一些配置。这包括设置采样频率、测量范围、滤波器设置等。请参考驱动程序文档来了解更多关于配置的细节。 5. 初始化驱动程序:在您的代码中,进行SPI初始化并初始化LSM6DS3设备。这可能包括设置SPI通信参数和初始化设备寄存器等步骤。请参考驱动程序文档以获取正确的初始化步骤。 6. 使用驱动程序读取和写入数据:通过使用驱动程序提供的函数,您可以读取和写入LSM6DS3设备的寄存器。根据您的需求,您可以读取加速度计和陀螺仪的数据,并进行相应的处理和分析。 请注意,以上步骤仅为一般指导,并且可能因具体的硬件和软件环境而有所不同。确保参考相关文档和资源,以获得与您的系统兼容的正确驱动程序和操作步骤。希望对您有所帮助!如果有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值