特性:
上节主要对LSM6DSL的一些特性做了一些简单了解,对他的驱动方式做了一个说明并提供了一个简单的测试代码,能够正常的获取加速度,并且能够正常的通过IN1产生个中断。
在简单的应用中是够用了,但是在实际的项目中这个了解程度是不够的,LSM6DSL 封装小,功耗低,功能强大,但是资料确实不多,这么多的寄存器哪些控制阈值,哪些配置加速度,哪些配置倾角,怎么获取步数,得到的值又是什么值?怎么进行转换,设计的内容还比较多。
没有办法只能老老实实去看数据手册了,打开手册就会发现功能确实多,这看起来是够费劲的了。这里推荐的资料就是官方的数据手册和应用手册。
先看下数据手册的目录:
开篇肯定是它的一个描述,讲述他的性能多牛逼,支持哪些功能。
第二节讲的它的低功耗性能,毕竟它的低功耗是一个卖点。这一节还讲了一些倾角相关的内容,主要应用是手机的一些坐下抬起等操作。
接下来就是它的封装管脚等硬件结构
第四节讲的它一些模式选择,根据不同场景肯定要选择不同的模式,在性能和功耗上得到一个平衡点。讲了一些芯片特性
第五节开始讲他的功能了,讲了他的加速度计和陀螺仪可以单独的使用,之前配置就是总是一个能用一个不能用,说明还是寄存器没配置好。
加速度通过CTRL1_XL(10h)进行激活,陀螺仪通过CTRL2_G(11h)进行激活,反正这两个寄存器肯定是比较重要的,之后着重看下它的每个位。
陀螺仪的电源模式
有四种电源模式,断电,低功耗,正常,和高性能,通过CTRL7_G(16h)进行配置。
加速度计的电源模式
同样的加速度计也有上面的几种模式,通过CTRL6_C(15h)进行选择。
这是硬件的一个内部框图,我们可以获取到支持两种连接,spi和IIC,有两个外部中断引脚
有FIFO,两个ADC(用来采集陀螺仪和加速度的),文档的内容也就围绕这些东西开展不会在多内容了。
使能加速度CTRL1_XL = 60h INT1_CTRL =01h
使能角速度 CTRL2_G =60h INT1_CTRL =02h
X_OFS_USR Y_OFS_USR Z_OFS_USR 加速度零偏校准
在应用手册上,官方提供了很多应用场景的配置和说明,可以根据自己的应用场景进行相应的寄存器配置。
我们只讲解思路,具体的可以根据自己需求进行更改。
上面是一个简单的应用,打开陀螺仪和加速度,6d翻转,当超过阈值时触发中断到int1.
比如要对加速度进行配置就给CTRL1_XL进行配置,在应用手册上进行搜索,就会搜索到相应寄存器和每个位的功能,然后进行赋值,当然一些寄存器是要配合使用的,也不用着急,直接应用手册上有实例,按照实例屏配置其他相关的寄存器即可,具体的寄存器表,和寄存器中每位的选择和代表的数据就如下所示。
根据场景确定功能,根据功能确定寄存器,根据寄存器表赋值相关位,相关位含义根据位表的数据进行查看,这样逐步进行就能完成自己想要的功能了。
话虽如此,但是这个小芯片功能强大,想要达到一定的精度和良好的体验,肯定还是要详细的阅读数据手册的。